wok-next annotate mirror-tools/stuff/home/backups/mirror/backup.sh @ rev 5678
mirror-tools/backup.sh: typo
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Jun 02 10:53:28 2010 +0200 (2010-06-02) |
parents | 0c59b115eabd |
children | bea570b9faaa |
rev | line source |
---|---|
pascal@5649 | 1 #!/bin/sh |
pascal@5649 | 2 |
pascal@5649 | 3 KEEP=1 |
pascal@5649 | 4 EXTRA="monthly:30:2" |
pascal@5649 | 5 BACKUP_USER=bellard |
pascal@5649 | 6 REMOTE_USER=bellard |
pascal@5649 | 7 |
pascal@5649 | 8 backup_data() |
pascal@5649 | 9 { |
pascal@5649 | 10 while read file dirs; do |
pascal@5677 | 11 ( cd / ; find $dirs | cpio -o -H newc ) | \ |
pascal@5677 | 12 rgzip -9 > $file.cpio.gz 2> /dev/null |
pascal@5649 | 13 done <<EOT |
pascal@5677 | 14 etc etc home/$BACKUP_USER/.ssh |
pascal@5677 | 15 www var/www/mirror-info var/www/pizza |
pascal@5677 | 16 packages var/lib/tazpkg/installed |
pascal@5677 | 17 rrd var/spool/rrd |
pascal@5677 | 18 crontabs var/spool/cron/crontabs |
pascal@5677 | 19 awstats var/lib/awstats |
pascal@5649 | 20 EOT |
pascal@5649 | 21 } |
pascal@5649 | 22 |
pascal@5649 | 23 # |
pascal@5649 | 24 # The following should be kept untouched. |
pascal@5649 | 25 # |
pascal@5649 | 26 |
pascal@5649 | 27 SSH="ssh -i /home/$BACKUP_USER/.ssh/id_rsa" |
pascal@5649 | 28 |
pascal@5649 | 29 cd $(dirname $0) |
pascal@5649 | 30 [ $(id -u) == 0 ] || exit 1 |
pascal@5649 | 31 [ $(hostname) == $(basename $PWD) ] || exit 1 |
pascal@5649 | 32 |
pascal@5649 | 33 rotate() |
pascal@5649 | 34 { |
pascal@5649 | 35 local i |
pascal@5649 | 36 local j |
pascal@5649 | 37 for j in $(seq $(($1 - 1)) -1 1); do |
pascal@5677 | 38 for i in *.$2.$(($j - 1)) ; do |
pascal@5678 | 39 [ -e $i ] && mv -f $i ${i%.$2.*}.$2.$j |
pascal@5677 | 40 done |
pascal@5649 | 41 done |
pascal@5649 | 42 } |
pascal@5649 | 43 |
pascal@5649 | 44 [ -n "$EXTRA" ] && for x in $EXTRA ; do |
pascal@5649 | 45 IFS=':' ; set -- $x ; unset IFS |
pascal@5649 | 46 suffix=$1 |
pascal@5649 | 47 days=$2 |
pascal@5649 | 48 keep=$3 |
pascal@5649 | 49 for i in *.gz ; do |
pascal@5677 | 50 [ -e $i ] || continue |
pascal@5649 | 51 mtime=$(( $(stat -c %Y $i) - ($days * 24 * 3600) )) |
pascal@5649 | 52 j=$i.$suffix.0 |
pascal@5649 | 53 [ -e $j ] && [ $(stat -c %Y $j) -gt $mtime ] && continue |
pascal@5649 | 54 rotate $keep gz.$suffix |
pascal@5649 | 55 ln $i $j |
pascal@5649 | 56 done |
pascal@5649 | 57 done |
pascal@5649 | 58 if [ 0$KEEP -gt 0 ]; then |
pascal@5649 | 59 [ $KEEP -gt 1 ] && rotate $KEEP gz |
pascal@5677 | 60 for i in *.gz ; do |
pascal@5677 | 61 [ -e $i ] && mv -f $i $i.0 |
pascal@5677 | 62 done |
pascal@5649 | 63 fi |
pascal@5649 | 64 |
pascal@5649 | 65 backup_data |
pascal@5649 | 66 |
pascal@5649 | 67 chown $BACKUP_USER * |
pascal@5649 | 68 chmod 700 * |
pascal@5649 | 69 |
pascal@5677 | 70 [ -n "$REMOTE_USER" ] && for i in $(cd .. ; ls); do |
pascal@5649 | 71 [ $i == $(hostname) ] && continue |
pascal@5649 | 72 rsync -aH -e "$SSH" --bwlimit=50 $REMOTE_USER@$i.slitaz.org:/home/backups/$i/. ../$i/. |
pascal@5649 | 73 done |