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