ruạṛ
#!/bin/bash # 2023 (C) WorldHost Group # Tsvetan Gerov <tsvetan@worldhost.group> # THOLD="2G" DUCMD="du -sh -t ${THOLD}" DOCROOTS=$(grep DocumentRoot /etc/apache2/conf/httpd.conf | awk '{print$2}' | sort | uniq) CPUSERS=$(ls /var/cpanel/users) # Well-known cache/backups locations LOCATIONS=" /wp-content/updraft/ /wp-content/ai1wm-backups/ /wp-content/ebwp-backups/ /wp-content/backuply/ /wp-content/cache/ /var/log/ /.npm/cache/ /wp-content/cache/tmpWpfc/ /wp-content/cache/autoptimize/ /wp-content/litespeed/ /error_log " USERLOCATIONS=" /lscache/ /softaculous_backups/ " echo_header() { echo "========== $1 ==========" } # Locations under domain/subdomain echo_header "USER CONTENT" for DOCROOT in $DOCROOTS; do for LOCATION in $LOCATIONS; do if [ -d ${DOCROOT}${LOCATION} ]; then $DUCMD ${DOCROOT}${LOCATION} fi done done # Loctions inside user's homedir for CPUSER in $CPUSERS; do CPHOME=$(getent passwd $CPUSER | cut -f 6 -d :) if [ ! -z $CPHOME ]; then for USERLOCATION in $USERLOCATIONS; do if [ -d ${CPHOME}/${USERLOCATION} ]; then $DUCMD ${CPHOME}/${USERLOCATION} fi done fi done echo_header "SERVER CONTENT" $DUCMD /usr/local/jetapps/usr/jetbackup5/downloads/ $DUCMD /usr/local/jetapps/usr/jetbackup5/workspace/ $DUCMD /var/log/ echo_header "Oversized log files" find /var/log/ -size +1G -exec du -sh {} \; echo_header "Oversized MySQL databases" du -sh -t 10G /var/lib/mysql/* RESELLERS=$(cat /var/cpanel/resellers | cut -f 1 -d :) SERVER=$(hostname) echo_header "Standard users over 50GB" CPUSERS=$(grep OWNER=root /var/cpanel/users/* | cut -f 1 -d : | xargs -n 1 basename) for CPUSER in $CPUSERS; do if grep -q -w $CPUSER /etc/passwd; then USED=$(whmapi1 --output=jsonpretty accountsummary user=$CPUSER | jq -r '.data.acct[].diskused' | sed 's/M//') USED_INT=${USED%.*} ACCOUNT_IP=$(grep ^IP /var/cpanel/users/$CPUSER | cut -f 2 -d =) if [ "$USED_INT" -gt "50000" ]; then echo "$SERVER;$ACCOUNT_IP;$CPUSER;$USED_INT" fi fi done echo_header "Resellers over 150GB" for RESELLER in $RESELLERS; do USED=$(whmapi1 --output=jsonpretty resellerstats user=$RESELLER | jq -r .data.reseller.diskused) USED_INT=${USED%.*} ACCOUNT_IP=$(grep ^IP /var/cpanel/users/$RESELLER | cut -f 2 -d =) if [ "$USED_INT" -gt "150000" ]; then echo "$SERVER;$ACCOUNT_IP;$RESELLER;$USED_INT" fi done
cải xoăn