proxmox backupserverda bir kac backup silecegim

hemen su an silmek ve yer temizlemek yer acmak istiyorum

24saat+5 dakika gcc prune vs vs shit degilmi?

o zaman sunu yap hizli ol

1- shelle git
find /path2pbs-datastore/.chunks -type f -print0 | xargs -0 touch -d "-2 days"
2- Daily GC Jobu calistir.

#!/bin/bash
#*******************************************************************************
#* @file        php_list.sh
#*
#* @brief       This scripts creates an list with used php versions for each domain on DA
#*
#*
#* @author 	Jordi van Nistelrooij @ Webs en Systems. 
#* @email 	info@websensystems.nl
#* @website	https://websensystems.nl
#* @version 	1.0.0
#* @copyright 	Non of these scripts maybe copied or modified without permission of the author
#*
#* @date        2025-06-10
#*
#*******************************************************************************
DA_USERS="/usr/local/directadmin/data/users"
OPTIONS_CONF="/usr/local/directadmin/custombuild/options.conf"
OUTPUT_FILE="php_versies_per_domein.txt"

# Haal phpX_release waardes op uit options.conf
declare -A php_versions
for i in {1..4}; do
    versie=$(grep "^php${i}_release=" "$OPTIONS_CONF" | cut -d= -f2)
    if [ -n "$versie" ]; then
        php_versions["$i"]="$versie"
    fi
done

echo "Domein | Gekozen PHP Slot | PHP Versie" > "$OUTPUT_FILE"
echo "------------------------------" >> "$OUTPUT_FILE"

for user in $(ls "$DA_USERS"); do
    DOMAINS_FILE="$DA_USERS/$user/domains.list"

    if [ -f "$DOMAINS_FILE" ]; then
        for domain in $(cat "$DOMAINS_FILE"); do
            CONF_FILE="$DA_USERS/$user/domains/${domain}.conf"
            if [ ! -f "$CONF_FILE" ]; then
                continue
            fi

            SLOT=$(grep "^php1_select=" "$CONF_FILE" | cut -d= -f2)

            if [ -z "$SLOT" ]; then
                SLOT="1"  # fallback naar php1 als er geen php1_select is
            fi

            VERSION="${php_versions[$SLOT]:-(onbekend)}"

            echo "$domain | $SLOT | $VERSION" >> "$OUTPUT_FILE"
        done
    fi
done

column -t -s '|' "$OUTPUT_FILE"


exit

# Update system packages
apt update && apt -y upgrade && apt -y autoremove && pveupgrade && pveam update

# Install useful utilities
apt install -y curl libguestfs-tools unzip iptables-persistent net-tools

# Remove subscription notice
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
Optimize ZFS Memory Usage
# Configure ZFS memory limits
echo "nf_conntrack" >> /etc/modules
echo "net.netfilter.nf_conntrack_max=1048576" >> /etc/sysctl.d/99-proxmox.conf
echo "net.netfilter.nf_conntrack_tcp_timeout_established=28800" >> /etc/sysctl.d/99-proxmox.conf
rm -f /etc/modprobe.d/zfs.conf
echo "options zfs zfs_arc_min=$[6 * 1024*1024*1024]" >> /etc/modprobe.d/99-zfs.conf
echo "options zfs zfs_arc_max=$[12 * 1024*1024*1024]" >> /etc/modprobe.d/99-zfs.conf
update-initramfs -u

https://community-scripts.github.io/ProxmoxVE/scripts?id=post-pve-install

command = ModifyDomain
domain = xxxxxx.eu
ownercontact0 = P-NUE1815
X-EU-ACCEPT-TRUSTEE-TAC = 0

ek

COMMAND = SetAuthCode
DOMAIN = (TEXT)

promox mail gateway spam quarantine page for users change the logo on the right upside and the link for a little bit of branding

1- logo is here:

/usr/share/javascript/pmg-gui/images/proxmox_logo.png

2- link is here:

/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

  1. Block external traffic to your server (outside Cloudflare)
  2. Create a WAF to block countries that are not the main source of your traffic, e.g.: China, Russia, Singapore, Korea, Pakistan, India
  3. Adjust the rate limit, you can do it through the NGINX configuration, but on Cloudflare it is free 1 rule
  4. Configure more aggressive caching on static pages
  5. Examine the logs, usually stressers/booters always send a query like “i=XXXX” or others in the URL to bypass the cache, check and block it through Cloudflare’s WAF, it will probably take a while to change, while you can breathe
  6. Block ASNs that are part of many attacks, such as AWS, DigitalOcean, Hetzner, Contabo, AT&T, Datacamp, Leaseweb, Quadranet, OVH, ColoCrossing (it was one of the solutions I used to solve it)

Here are my WAF rules:

  1. JS Challenge
(ip.geoip.country in {"AL" "AD" "AM" "BY" "BF" "BI" "CN" "FJ" "GF" "GT" "GY" "HT" "HN" "HK" "KP" "KR" "MO" "MW" "MY" "RU" "SG" "SR" "VE" "VN"}) or (cf.threat_score gt 70) or (http.user_agent contains "curl") or (http.user_agent contains "python") or (http.user_agent contains "Go-http-client")
  1. Block
(ip.geoip.asnum in {24940 26347 43350 7018 58111 8075 47583 16628 205016 31898 45102 204548 46562 35320 54483 398101 27715 202269 32329 7489 8100 46606 40021 21887 12876 22394 25820 208226 13213 35612 38365 45090 17816 22773 4812 7849 14618 26496 13287 132203 14103 27967 1759 41508 8972 35916 60781 2152 29066 1239 24961 7162 395336 39378 266400 64200 210558 399486 198605 28539 212238 272043 14576 56655 9152 9050 8953 265919 47583 263093 27715 7162 46407 60068 40676 199524 212238 60068 210630 53667 132203 45090 137876 133478 23033 27176 20278 397966 49157 11989 52468 174 1239 58212 20473 6939 16276 6147 6057 3352 397630 5089 7018 20115 701 18779 5650 209 395954 8560 398101 26496 26347 12876 46261 20773 21859 25780 29802 30083 32097 32475 33070 33182 33387 36024 36351 36352 42473 46475 46664 49544 52219 53559 55933 62567 63473 63949 136258 202053 203629 24549 200019 8851 28753 21559 9009 42675 62240 11427 265613 25369 42624 26548}) or (ip.geoip.continent in {"T1"}) or (ip.geoip.country in {"BY" "BA" "BG" "CN" "CY" "SV" "FK" "FO" "GL" "HN" "HU" "JE" "JO" "XK" "LI" "MK" "MT" "MD" "OM" "RS" "SK" "SI" "AE"}) or (http.request.uri.path contains "/cms") or (http.request.uri.path contains "/wp") or (http.request.uri.path contains "/wordpress") or (http.request.uri.path contains ".env") or (http.request.uri.path contains "\\xC9") or (http.request.uri.path contains "xmlrpc.php")

ek goz at: https://github.com/chaitin/SafeLine

zfs zraid2 resilvering cok yavas ne yapalim?
simdilik sadece bunu bulabildim :*(

suncuda 256 Ram var 192 sini kullansin

  echo 206158430208 >/sys/module/zfs/parameters/zfs_arc_max
  echo 206158430208 >/sys/module/zfs/parameters/zfs_arc_min
  echo 5 >/sys/module/zfs/parameters/zfs_scan_mem_lim_fact

sonuncu Yani scrub / resilver işlemleri için kullanılabilecek bellek limiti artık ARC boyutunun 1/5’i (%20) olacak demek

yani benim durumumda Yani scrub / resilver işlemleri maksimum ~38 GB RAM kullanabilir hale gelir.

Not bu degerler on the fly, eger rebot edince bunlar olsun dersen:

nano /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=206158430208
options zfs zfs_arc_min=206158430208
options zfs zfs_scan_mem_lim_fact=5

eger root file system ZFS ise (bende oyle)
update-initramfs -u -k all

ve reboot