job(){ width=$((`tput cols`-`echo $1|wc -m`));offset=$(($width/2));col=1;while [ $col -lt $offset ];do echo -n " ";col=$(($col+1));done;echo -e "$1"; };LargeFileLocator(){ task(){ echo "=> $1";echo; };check(){ if [ -z $1 ];then dir=$(pwd);fi;if [ -d $1 ];then if [ `ls $1|wc -l` -gt 0 ];then cd $1;if [ -z `ls|grep -v "-"|du -h|grep '[0-9]G'|head -1|awk {'print $1'}` ];then echo -e "\tALL LOOKS GOOD IN HERE. ($1)";echo;else du -m --max-depth=3|sort -nr|cut -f2|tr \\n \\0|xargs -0 du -sh|sed 's/.\///'|grep -v '[0-9]M\|[0-9]K'|awk -v wd="$(pwd)" '{print wd"/"$2" "$1}'|sort|awk '{print "ATTENTION: "$2" found ==> "$1}'|sed 's/^/\t /'|sed 's/\/\.//';echo;fi;else echo -e "\tNOTHING FOUND IN HERE. ($1)";echo;fi;else echo -e "\tNOTHING FOUND HERE. ($1)";fi; };clear;echo;job "LARGE FILE/FOLDER LOCATOR";echo;job "`df -h|sed '1d'|grep -v "none\|udev\|tmp"|awk -v svr=$(hostname|cut -d\. -f1) '{print "Currently "$3"("$5") of "$2" used."}'`";job "`df -h|sed '1d'|grep -v "none\|udev\|tmp"|awk -v svr=$(hostname|cut -d\. -f1) '{print $4" of free space is left on "svr}'`";echo;echo;task "Checking for large orphaned files in home dir:";if [ -z `ls -lah /home |awk {'print $9'}|sed '1,3d'|grep -v "-"|grep -v "......[0-9]"|xargs -I {} du -smh "/home/"{}|grep -o '[0-9]G'|head -1` ];then echo -e "\tALL LOOKS NORMAL IN HERE. (/home)";echo;else check "/home"|grep -vw "`echo $(cat /etc/trueuserdomains|awk '{print "/home/"$2}')|sed -e '1,10s/ /.*$\\\|/g'`"|sed '/^.*home$/d';fi;task "Looking for large cPanel user folders:";for user in `cat /etc/trueuserdomains | awk '{print $2}'`;do if [ `du -ms "/home/"$user|cut -f1` -gt 1000 ];then echo -e "\tcPanel User $user seems pretty large...";check "/home/$user";fi;done;task "Checking for large standard log files:";check "/var/log";task "Looking for large mysql db's & logs:";check "/var/lib/mysql";task "Looking for large WHM (scheduled) backups:";check "/backup";echo; };st=`date +%s`;LargeFileLocator;et=`date +%s`;job "DONE";job "(Execution Time: `expr $et - $st`s)";echo;