#!/bin/bash
# dayid@dayid.org
# Cleaning up RedHat/CPanel machines
# Newest version available at http://linux.dayid.org/scripts/cleanup.sh
# Last update on 2007/06/20 added the "You saved xx space" function
# This script assumes you're not an idiot, and use updatedb scheduled. 
clear
echo "We're going to do some simple spring cleaning. How exciting!"
# Record current disk-size to show amount cleaned at end:
oldusage=0
df | awk '{ print $3 }' | grep -v [a-zA-Z] > tmpfiler
for value in `cat tmpfiler`; do oldusage=`expr ${oldusage} + ${value}`; done
MBusage=`expr $oldusage / 1024`
GBusage=`expr $MBusage / 1024`
echo "Current disk usage is ${GBusage}GB of data."
bam=`pwd`
for foo in `locate error_log | grep /home | grep -v error_log.php`; do echo $foo && : > $foo; done
for foo in `locate error.log | grep /home`; do echo $foo && : > $foo; done
for foo in `ls /var/log/maillog*`; do echo $foo && : > $foo; done
for foo in `ls /var/log/*.com`; do echo $foo && rm -f $foo; done
for foo in `ls /var/log/*.?`; do echo $foo && rm -f $foo; done
for foo in `ls /var/log/*.gz`; do echo $foo && rm -f $foo; done
for foo in `ls /var/log/*.[1-9]?`; do echo $foo && rm -f $foo; done
for foo in `ls /var/log/exim*.?`; do echo $foo && rm -f $foo; done
for foo in `ls /var/log/exim_* | grep -v .gz`; do echo $foo && : > $foo; done
clear
echo "Now to clean trash/spamboxes, this may take a bit..."
for foo in `nice 19 ls /home/*/mail/*`; do echo $foo && nice 19 rm -fv ${foo}.spam/*/*; done 
for foo in `ls /var/lib/mysql/$HOSTNAME.err`; do echo $foo && : > $foo; done
clear
for foo in `ls -l /home/ | grep ^d | awk '{ print $9 }'`; do
 rm -rfv ${foo}/.trash/*
 done
if [ -a /home2 ]
 then
  for foo in `ls -l /home2/ | grep ^d | awk '{ print $9 }'`; do
  rm -rfv ${foo}/.trash/*
  done
fi
rm -rfv /tmp/*
rm -rfv /tmp/.??*
cd $bam
clear
# Record new usage to compare to old:
df | awk '{ print $3 }' | grep -v [a-zA-Z] > tmpfiler
newusage=0
for value in `cat tmpfiler`; do newusage=`expr ${newusage} + ${value}`; done
MBusage=`expr $newusage / 1024`
GBusage=`expr $MBusage / 1024`
echo "Current disk usage is ${GBusage}GB of data."
usage=`expr $oldusage - $newusage`
MBusage=`expr $usage / 1024`
GBusage=`expr $MBusage / 1024`
echo "We just took disk usage from ${oldusage} to ${newusage}."
echo "You just saved the system ${GBusage}GB (${MBusage}MB) of diskspace!"
rm -f cleanup.sh
echo "...DONE"

