cd /var/www/html/blabla-folder

cat > .htaccess <<'EOF'
Options +Indexes
IndexOptions FancyIndexing HTMLTable Charset=UTF-8 NameWidth=* DescriptionWidth=* FoldersFirst VersionSort IgnoreCase SuppressDescription
IndexOrderDefault Ascending Name
IndexIgnore .??* *~
IndexStyleSheet "/blabla-folder/.fancy.css"
EOF

cat > .fancy.css <<'EOF'
@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500&family=Ubuntu+Mono&display=swap');
:root{--bg:#0f1115;--card:#171a21;--row:#1c2029;--hover:#252b37;--fg:#e6e6e6;--muted:#8b93a7;--accent:#4fc3f7;--border:#2a2f3a}
*{box-sizing:border-box}
html,body{background:var(--bg);color:var(--fg);margin:0;font-family:'Ubuntu',system-ui,sans-serif;font-size:15px}
body{max-width:1200px;margin:0 auto;padding:24px 16px}
h1{font-weight:500;font-size:22px;color:var(--accent);margin:0 0 18px;word-break:break-all}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}
th{background:#12151b;text-align:left;padding:12px 14px;font-weight:500;border-bottom:1px solid var(--border)}
th a{color:var(--muted);text-decoration:none}th a:hover{color:var(--accent)}
tr.indexbreakrow,hr{display:none}
td{padding:9px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
tr.odd td{background:var(--row)}tr:hover td{background:var(--hover)}
.indexcolicon{display:none}
td.indexcolname{width:100%;word-break:break-all}
td.indexcolname a{color:var(--fg);text-decoration:none}td.indexcolname a:hover{color:var(--accent)}
td.indexcollastmod,td.indexcolsize{color:var(--muted);white-space:nowrap;font-family:'Ubuntu Mono',monospace;font-size:14px}
td.indexcolsize{text-align:right}
td.indexcolname a::before{content:'📄';display:inline-block;width:1.6em}
td.indexcolname a[href$='/']::before{content:'📁'}
td.indexcolname a[href^='/']::before{content:'⬆️'}
td.indexcolname a:is([href$='.zip' i],[href$='.tar' i],[href$='.gz' i],[href$='.tgz' i],[href$='.bz2' i],[href$='.xz' i],[href$='.7z' i],[href$='.rar' i],[href$='.zst' i])::before{content:'📦'}
td.indexcolname a:is([href$='.jpg' i],[href$='.jpeg' i],[href$='.png' i],[href$='.gif' i],[href$='.webp' i],[href$='.svg' i])::before{content:'🖼️'}
td.indexcolname a:is([href$='.mp4' i],[href$='.mkv' i],[href$='.avi' i],[href$='.mov' i],[href$='.webm' i])::before{content:'🎬'}
td.indexcolname a:is([href$='.mp3' i],[href$='.flac' i],[href$='.wav' i],[href$='.ogg' i])::before{content:'🎵'}
td.indexcolname a:is([href$='.pdf' i])::before{content:'📕'}
td.indexcolname a:is([href$='.doc' i],[href$='.docx' i],[href$='.txt' i],[href$='.md' i],[href$='.odt' i])::before{content:'📝'}
td.indexcolname a:is([href$='.xls' i],[href$='.xlsx' i],[href$='.csv' i])::before{content:'📊'}
td.indexcolname a:is([href$='.iso' i],[href$='.img' i],[href$='.qcow2' i],[href$='.vmdk' i])::before{content:'💿'}
td.indexcolname a:is([href$='.sh' i],[href$='.py' i],[href$='.php' i],[href$='.js' i],[href$='.json' i],[href$='.conf' i],[href$='.yml' i],[href$='.sql' i],[href$='.html' i])::before{content:'⚙️'}
td.indexcolname a:is([href$='.deb' i],[href$='.rpm' i],[href$='.exe' i],[href$='.msi' i],[href$='.apk' i])::before{content:'🧩'}
address{color:var(--muted);font-size:12px;margin-top:14px;font-style:normal}
@media(max-width:640px){.indexcollastmod{display:none}}
EOF

chmod 644 .htaccess .fancy.css
chown $(stat -c '%U:%G' .) .htaccess .fancy.css
head -3 .htaccess

-------------------
# Disable strict MX checking (insecure):
sed -i '/^FORCED_MX_DNS_CHECK /d' /etc/exim.variables.conf.custom
echo 'FORCED_MX_DNS_CHECK = no' >> /etc/exim.variables.conf.custom
da build exim_conf

# Restore strict MX checking
sed -i '/^FORCED_MX_DNS_CHECK /d' /etc/exim.variables.conf.custom
da build exim_conf
----------------------

find /home/*/imap -path '*/sieve/*' -name '*.sieve' -exec grep -HiE '^\s*redirect' {} \; 2>/dev/null

find . -mindepth 1 -maxdepth 1 -type d | sort | while read d; do printf "%s: %d files, %s\n" "$d" "$(find "$d" -type f | wc -l)" "$(du -sh "$d" | cut -f1)"; done

one line bash command for to list the total number of files in each directory and below directiroes
and directory total sizses each – Fuck English 😀

hani llm yoktu? varmi? cok ayip…. cok….

Step 1 — Configure /etc/network/interfaces on the Proxmox host
bash# /etc/network/interfaces

auto lo
iface lo inet loopback

# Physical NIC
auto eth0
iface eth0 inet manual

# vmbr0 — uplink bridge (real IPv4 + IPv6 from ISP)
auto vmbr0
iface vmbr0 inet static
    address 203.0.113.1/24        # your real IPv4
    gateway 203.0.113.254
    bridge-ports eth0
    bridge-stp off
    bridge-fd 0

iface vmbr0 inet6 static
    address 2a01:xxxx:xxxx:xxxx::1/64   # your real /64 prefix, host address
    gateway fe80::1                      # ISP's link-local gateway

# vmbr1 — internal NAT bridge (no physical port)
auto vmbr1
iface vmbr1 inet static
    address 192.168.100.1/24
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up   iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j MASQUERADE
Apply with:
bashsystemctl restart networking
# or
ifreload -a

Step 2 — IPv4 DHCP for VMs via dnsmasq
Install and configure dnsmasq to hand out 192.168.100.x leases on vmbr1:
bashapt install dnsmasq
ini# /etc/dnsmasq.d/vmbr1.conf

interface=vmbr1
bind-interfaces

# IPv4 DHCP pool
dhcp-range=192.168.100.50,192.168.100.200,255.255.255.0,24h

# DNS
dhcp-option=6,1.1.1.1,8.8.8.8

# Optional: assign fixed IPs by MAC
# dhcp-host=aa:bb:cc:dd:ee:ff,192.168.100.10,myhostname
bashsystemctl enable --now dnsmasq
systemctl restart dnsmasq

Step 3 — Real IPv6 for VMs via SLAAC (Router Advertisements)
Your host has a real /64, so VMs can get real public IPv6 addresses automatically via SLAAC — no DHCPv6 needed (though you can add it).
Enable IPv6 forwarding and RA on vmbr0:
bash# /etc/sysctl.d/99-ipv6-forward.conf
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.vmbr0.accept_ra = 2   # accept RA even when forwarding
bashsysctl -p /etc/sysctl.d/99-ipv6-forward.conf
Install radvd to send Router Advertisements to VMs:
bashapt install radvd
conf# /etc/radvd.conf

interface vmbr0 {
    AdvSendAdvert on;
    MinRtrAdvInterval 30;
    MaxRtrAdvInterval 100;

    prefix 2a01:xxxx:xxxx:xxxx::/64 {
        AdvOnLink on;
        AdvAutonomous on;       # enables SLAAC — VMs self-configure an IPv6
        AdvRouterAddr on;
    };
};
bashsystemctl enable --now radvd
Each VM with SLAAC support (all modern Linux, Windows, BSD) will auto-generate a 2a01:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx address from its MAC.

Step 4 — VM network config in Proxmox
When creating a VM, attach two network interfaces:
InterfaceBridgePurposenet0vmbr0Real IPv6 via SLAACnet1vmbr1Private IPv4 via DHCP (192.168.100.x)

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