home Mail List
Info
Info
Meetings
Goals
Upcoming
Projects
FAQ
Security
Links

[Date Prev][Date Next] [Chronological] [Thread] [Top]

[NMLUG] Bash Scripting help



Ever consider using logrotate?

On Wed, Mar 30, 2005 at 12:48:04PM -0800, Tim Emerick wrote:
> I've been working on a bash backup script that runs as a cron job.  To say
> it's inelegant is an understatement at best.  I could use some advice on
> structure and output.
> 
> 1. Rotating backup sets is tedious if I wanted to add or delete the number of
> sets to retain.  Is there a way to loop using a variable?
> 
> 2. When running as a cron job I get an email after the job has run showing
> output.  The commands that were run are preceded with a '+'.  I would like to
> selectively replace them with something more descriptive using echo.
> 
> 3. I'm using date to give me a start and stop time but I would also like a
> total time that the script took to run.
> 
> Below is the actual script and the email from cron.
> 
> Thanks for your insight.
> 
> Tim
> ~~~~~~~~~~~ Start Script ~~~~~~~~~~~~~~~~~~~~~~~~
> #!/bin/sh -x
> #
> # Backup Procedure.
> #
> # This backs up the /shares directory keeping a 10 day
> # live backup set for easy file recover via samba share.
> #
> # Some superflous files are deleted from backups older than 2 days.
> 
> # Show what time we started
> echo Backup started `date`
> 
> rm -fr /backup/10
> mv /backup/09 /backup/10
> mv /backup/08 /backup/09
> mv /backup/07 /backup/08
> mv /backup/06 /backup/07
> mv /backup/05 /backup/06
> mv /backup/04 /backup/05
> mv /backup/03 /backup/04
> mv /backup/02 /backup/03
> mv /backup/01 /backup/02
> mkdir /backup/01
> 
> # Clean up some non-essential backup files from the prior backup set.
> rm -fr /backup/02/bcd/
> rm -fr /backup/02/ghost/
> rm -fr /backup/02/gmtools
> rm -fr /backup/02/installs/
> rm -fr /backup/02/kodata/
> rm -fr /backup/02/nai/
> rm -fr /backup/02/nissan-efast/
> rm -fr /backup/02/nissan-winfast/
> rm -fr /backup/02/sambastuff/
> rm -fr /backup/02/etc/
> rm -fr /backup/02/var/
> rm -fr /backup/02/temp/
> 
> # I like to keep some backups for 2 days.  Let's delete those now.
> rm -fr /backup/03/pathways/
> 
> # CoPy the shares folder to the backup directory
> cp -a /shares/* /backup/01/
> 
> # also copy the /etc and /var directory
> cp -a /etc/ /backup/01/etc/
> cp -a /var/ /backup/01/var/
> 
> # Exit with some statistics
> du -sh /shares/*
> du -sh /backup/*
> df -h
> 
> echo
> echo Backup Finished `date`
> ~~~~~~~~~End Script~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~~~~~~~~~Start cron/at email ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ++ date
> + echo Backup started Wed Mar 30 12:42:00 MST 2005
> Backup started Wed Mar 30 12:42:00 MST 2005
> + rm -fr /backup/10
> + mv /backup/09 /backup/10
> + mv /backup/08 /backup/09
> + mv /backup/07 /backup/08
> + mv /backup/06 /backup/07
> + mv /backup/05 /backup/06
> + mv /backup/04 /backup/05
> + mv /backup/03 /backup/04
> + mv /backup/02 /backup/03
> + mv /backup/01 /backup/02
> + mkdir /backup/01
> + rm -fr /backup/02/bcd/
> + rm -fr /backup/02/ghost/
> + rm -fr /backup/02/gmtools
> + rm -fr /backup/02/installs/
> + rm -fr /backup/02/kodata/
> + rm -fr /backup/02/nai/
> + rm -fr /backup/02/nissan-efast/
> + rm -fr /backup/02/nissan-winfast/
> + rm -fr /backup/02/sambastuff/
> + rm -fr /backup/02/etc/
> + rm -fr /backup/02/var/
> + rm -fr /backup/02/temp/
> + rm -fr /backup/03/pathways/
> + cp -a /shares/accounting /shares/accounting-pr /shares/bcd /shares/bluebook
> /shares/cbs /shares/ghost /shares/gmtools /shares/installs /shares/kodata
> /shares/nai /shares/nissan-efast /shares/nissan-winfast /shares/pathways
> /shares/sambastuff /shares/temp /backup/01/
> + cp -a /etc/ /backup/01/etc/
> + cp -a /var/ /backup/01/var/
> + du -sh /shares/accounting /shares/accounting-pr /shares/bcd
> /shares/bluebook /shares/cbs /shares/ghost /shares/gmtools /shares/installs
> /shares/kodata /shares/nai /shares/nissan-efast /shares/nissan-winfast
> /shares/pathways /shares/sambastuff /shares/temp
> 266M	/shares/accounting
> 29M	/shares/accounting-pr
> 613M	/shares/bcd
> 740M	/shares/bluebook
> 1.1G	/shares/cbs
> 9.6G	/shares/ghost
> 808M	/shares/gmtools
> 9.7G	/shares/installs
> 1.4G	/shares/kodata
> 182M	/shares/nai
> 501M	/shares/nissan-efast
> 623M	/shares/nissan-winfast
> 1.7G	/shares/pathways
> 14M	/shares/sambastuff
> 148M	/shares/temp
> + du -sh /backup/1 /backup/10 /backup/2 /backup/3 /backup/4 /backup/5
> /backup/6 /backup/7 /backup/8 /backup/9
> 28G	/backup/01
> 2.1G	/backup/10
> 3.7G	/backup/02
> 2.1G	/backup/03
> 2.1G	/backup/04
> 2.1G	/backup/05
> 2.1G	/backup/06
> 2.1G	/backup/07
> 2.1G	/backup/08
> 2.1G	/backup/09
> + df
> Filesystem           1K-blocks      Used Available Use% Mounted on
> /dev/hda1              6728280    665812   5720688  11% /
> tmpfs                   128472         0    128472   0% /dev/shm
> /dev/hda6            146371480  49574860  89361340  36% /backup
> /dev/md0              76922848  28424988  44590332  39% /shares
> + echo
> 
> ++ date
> + echo Backup Finished Wed Mar 30 13:02:44 MST 2005
> Backup Finished Wed Mar 30 13:02:44 MST 2005
> ~~~~~~~~~~~~~~~Finish cron/at email~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> Yahoo! Small Business - Try our new resources site!
> http://smallbusiness.yahoo.com/resources/ 
> _______________________________________________
> NMLUG mailing list
> NMLUG@nmlug.org
> http://www.nmlug.org/mailman/listinfo/nmlug
> 

-- 

James Hamilton
Southwest Cyberport
http://www.swcp.com
505-232-7992		



Please send sugestions and comments to webmaster@nmlug.org.
Valid XHTML 1.1! Valid CSS! Powered by Debian Powered by Apache