Stupid Shell Tricks

From Federal Burro of Information
Revision as of 00:56, 12 January 2009 by David (talk | contribs) (New page: 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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:

  1. cd $filesystem_to_duplicate
  2. find . -print | cpio -pvdm /mnt

...where /mnt is the new filesystem/slice. To duplicate/move across the network do it like this:

  1. cd $filesystem_to_duplicate
  2. 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