slitaz-dev-tools view mirror-tools/rootfs/home/backups/mirror/backup.sh @ rev 309

Remove ashism ==
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Feb 26 08:23:49 2019 +0100 (2019-02-26)
parents a49102a73eff
children
line source
1 #!/bin/sh
3 KEEP=1
4 EXTRA="monthly:30:2"
5 BACKUP_USER=bellard
6 REMOTE_USER=bellard
8 backup_data()
9 {
10 GZIP=rgzip
11 which $GZIP > /dev/null || GZIP=gzip
12 echo "Syncing doc.slitaz.org ..."
13 rsync -aH -e "$SSH" --bwlimit=50 \
14 $REMOTE_USER@tank.slitaz.org:/home/slitaz/www/doc/data/. /var/www/doc/data/.
15 while read file dirs; do
16 echo "Creating $file.cpio.gz ..."
17 ( cd / ; find $dirs | cpio -o -H newc ) | \
18 $GZIP -9 > $file.cpio.gz 2> /dev/null
19 done <<EOT
20 etc etc home/$BACKUP_USER/.ssh
21 www var/www/mirror-info var/www/pizza
22 www2 var/www/boot /var/www/hg /var/www/pkgs /var/www/doc
23 packages var/lib/tazpkg/installed
24 rrd var/spool/rrd
25 crontabs var/spool/cron/crontabs
26 awstats var/lib/awstats
27 EOT
28 }
30 #
31 # The following should be kept untouched.
32 #
34 SSH="ssh -i /home/$BACKUP_USER/.ssh/id_rsa -o PasswordAuthentication=no"
36 cd $(dirname $0)
37 [ $(id -u) = 0 ] || exit 1
38 [ $(hostname) = $(basename $PWD) -o \
39 $(hostname) = $(basename $PWD).slitaz.org ] || exit 1
41 rotate()
42 {
43 local i
44 local j
45 for j in $(seq $(($1 - 1)) -1 1); do
46 for i in *.$2.$(($j - 1)) ; do
47 [ -e $i ] && mv -f $i ${i%.$2.*}.$2.$j
48 done
49 done
50 }
52 [ -n "$EXTRA" ] && for x in $EXTRA ; do
53 IFS=':' ; set -- $x ; unset IFS
54 suffix=$1
55 days=$2
56 keep=$3
57 for i in *.gz ; do
58 [ -e $i ] || continue
59 mtime=$(( $(stat -c %Y $i) - ($days * 24 * 3600) ))
60 j=$i.$suffix.0
61 [ -e $j ] && [ $(stat -c %Y $j) -gt $mtime ] && continue
62 rotate $keep gz.$suffix
63 ln $i $j
64 done
65 done
66 if [ 0$KEEP -gt 0 ]; then
67 [ $KEEP -gt 1 ] && rotate $KEEP gz
68 for i in *.gz ; do
69 [ -e $i ] && mv -f $i $i.0
70 done
71 fi
73 echo "Local backup for $(hostname) ..."
74 backup_data
76 chown $BACKUP_USER *
77 chmod 700 *
79 [ -n "$REMOTE_USER" ] && for i in $(cd .. ; ls); do
80 [ $i = $(hostname) -o $i.slitaz.org = $(hostname) ] && continue
81 echo "Getting backups from $i ..."
82 rsync -aH -e "$SSH" --bwlimit=50 $REMOTE_USER@$i.slitaz.org:/home/backups/$i/. ../$i/.
83 done