Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!ucsd!ucselx!nash From: nash@ucselx.sdsu.edu (Ron Nash) Newsgroups: comp.unix.admin Subject: Re: Looking for shell script for backup on BSD 4.3 Message-ID: <1990Oct12.214824.5890@ucselx.sdsu.edu> Date: 12 Oct 90 21:48:24 GMT References: <11885@bsu-cs.bsu.edu> Organization: San Diego State University Computing Services Lines: 82 In article <11885@bsu-cs.bsu.edu> koffi@bsu-cs.bsu.edu (There will be enough room in HEAVENS for all of US) writes: > >Hello, > >Is there any best way to do backups using a shell script program which will >automatically kill the idle users on the systems, turn off the acct and the >login file, etc ... > >Is it advised to write this type of shell script or C program to perform a >one shot backup - from beginning to finish? > Koffi, I have written a csh script that you may want to edit to do a level 0 dump after disabling logins, warning users and logging them out if they don't. It ignores background jobs - possibly a bug depending upon your viewpoint. Feel free to edit at will. #!/bin/csh # Weekly level 0 dump - Ron Nash # echo "Weekly Full Backup" echo "The weekly backup disables logins and terminates users on" echo "ucselx.sdsu.edu. This backup will remove all users after" echo -n "5 minutes and disable logins. Proceed (No)? " set ANS = $< if ( $ANS == "" ) set ANS = "no" switch ( $ANS ) case 'Y*' case 'y*' umask 033 echo "No Logins: System down for full backup" > /etc/nologin echo "Logins disabled..." set tty = `tty | sed -e 's./dev/tty..'` set i = (`ps ag | grep "[-][c,k]sh" | grep -v " $tty " | awk '{print $1}'`) if ( $#i == 0 ) then echo "No users logged on..." else echo -n "Notifing $#i users..." ps aug | grep "[-][c,k]sh" | grep -v " $tty " | awk '{printf("%s ", $1)}' echo " " echo "System going down in 5 minutes for full backup" | wall sleep 180 echo "System going down in 2 minutes for full backup" | wall sleep 60 echo "System going down in 60 seconds for full backup" | wall sleep 30 echo "System going down in 30 seconds for full backup" | wall sleep 30 echo "System going down NOW" | wall echo "Removing users... " /bin/kill -9 $i >& /dev/null echo "Users removed..." endif sync breaksw default: echo "Weekly backup not run" exit breaksw endsw # make backup copies of passwd and group cp /etc/passwd /usr1/adm cp /etc/group /usr1/adm cp /dev/null /etc/dumpdates echo "Weekly backup proceeding..." dump 0unsdf 2200 6250 /dev/rmt1h /usr1 rm -f /etc/nologin echo "Logins enabled" echo "Weekly full backup has finished" #mt offline >& /dev/null exit -- Ron Nash San Diego State University Internet: nash@ucselx.sdsu.edu UUCP: ucsd!sdsu!ucselx!nash