Stupid Shell Tricks
du -x --max-depth=1 / | sort -rn
NOW=`date +%a.%d.%b.%Y`
ARGV="$@" if [ "x$ARGV" = "x" ] ; then
echo usage: all start, stop, reload, abort, flush, or check exit
fi
case $# in 0) echo 'Usage: ./snapshot <CPE name> (ie, ./snapshot YCDECUBC)' 1>&2; exit 2 esac
trap 'echo "";exit 3' 2 15 trap 'echo fake_tomcat.sh caught 1 HUP \-\> ok bye\! ; exit 3' 1 trap 'echo fake_tomcat.sh caught 3 QUIT \-\> ok bye\! ; exit 3' 3 trap 'echo fake_tomcat.sh caught 9 KILL \-\> ok bye\! ; exit 3' 9 trap 'echo fake_tomcat.sh caught 15 TERM \-\> ok bye\! ; exit 3' 15
TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1
To move/duplicate filesystems I have a favorite way to do it locally:
- cd $filesystem_to_duplicate
- find . -print | cpio -pvdm /mnt
...where /mnt is the new filesystem/slice. To duplicate/move across the network do it like this:
- cd $filesystem_to_duplicate
- tar cf - . | ssh otherhost "cd /$new_filesystem ; tar xf -"
function waitfor {
if [ $# -lt 1 ] ; then echo "nothing to wait for" else echo "ok I'll wait" echo Still running = 1 STILL_RUNNING=1 while [ $STILL_RUNNING -gt 0 ] do STILL_RUNNING=`ps -auwwwx | grep $1 | grep -v grep | wc -l` echo STILL_RUNNING = $STILL_RUNNING sleep 1 echo waiting... done fi echo $1
} | tr '\n' ','
TimerOn()
{
sleep $TIMELIMIT && kill -s 14 $$ & # Waits 3 seconds, then sends sigalarm to script.
}
Int14Vector() {
answer="TIMEOUT" PrintAnswer exit 14
}
trap Int14Vector 14