#!/bin/bash # # homedirbackup.sh - script responsible for performing home directory back ups # to a location that is NOT the fileserver. # # 20101014 - directory typo on destination fixed (mth) # 20101013 - initial version (mth) # ismaster="`df | grep export | wc -l`" if [ "$ismaster" -eq 1 ]; then alphabet="abcdefghijklmnopqrstuvwxyz" date=`date +"%Y%m%d"` day=`date +"%d"` if [ "$day" -lt 14 ]; then bhost="sokraits" else bhost="halfadder" let day=$day-13 fi range="`echo $alphabet | cut -c $day,$(($day+13))`" cd /export/home for user in `/bin/ls -1d [$range]*`; do #echo -n "[$user] " # Check the load average, and delay as long as we're above 200% CPU loadavg=`uptime | sed 's/^.*average: \([0-9][0-9]*\)\.\([0-9][0-9]\).*$/\1/'` while [ "$loadavg" -ge 2 ]; do sleep "$((RANDOM % 64 + 64))" loadavg=`uptime | sed 's/^.*average: \([0-9][0-9]*\)\.\([0-9][0-9]\).*$/\1/'` done ssh $bhost "mkdir -p /backup/${user}; /backup/prune.sh ${user}" tar cpf - $user | gzip -9 | ssh $bhost "dd of=/backup/${user}/${user}-${date}.tar.gz" done fi exit 0