]>
Commit | Line | Data |
---|---|---|
d87a489f IB |
1 | #!/bin/bash |
2 | DEST="<%= @dest %>" | |
3 | MAILTO="<%= @mailto %>" | |
4 | BASE="<%= @base %>" | |
5 | OLD_BAK_BASE=$BASE/older/j | |
6 | BAK_BASE=${OLD_BAK_BASE}0 | |
7 | RSYNC_OUTPUT=$BASE/rsync_output | |
8 | NBR=7 | |
9 | ||
10 | TMP=`mktemp` | |
11 | TMP_STDERR=`mktemp` | |
12 | ||
13 | trap "rm -f $TMP $TMP_STDERR" EXIT | |
14 | ||
15 | exec 2> "$TMP_STDERR" | |
16 | ||
17 | set -e | |
18 | if ! `ssh -o ClearAllForwardings=yes $DEST backup`; then | |
19 | echo "Fichier de verrouillage backup sur $DEST" | |
20 | exit 1 | |
21 | fi | |
22 | ||
23 | rm -rf ${OLD_BAK_BASE}${NBR} | |
24 | for j in `seq -w $(($NBR-1)) -1 0`; do | |
25 | [ ! -d ${OLD_BAK_BASE}$j ] && continue | |
26 | mv ${OLD_BAK_BASE}$j ${OLD_BAK_BASE}$(($j+1)) | |
27 | done | |
28 | mkdir $BAK_BASE | |
29 | mv $RSYNC_OUTPUT $BAK_BASE | |
30 | mkdir $RSYNC_OUTPUT | |
31 | ||
32 | ############## | |
33 | NAME="home" | |
34 | FOLDER="/home/immae" | |
35 | ||
36 | cd $BASE/$NAME | |
37 | cat > $TMP <<EOF | |
38 | /.no_backup/ | |
39 | /hosts/florian/nobackup/ | |
40 | /hosts/connexionswing.com/ | |
41 | /hosts/connexionswing.immae.eu/ | |
42 | /hosts/ludivine.immae.eu/ | |
43 | /hosts/ludivinecassal.com/ | |
44 | /hosts/piedsjaloux.fr/ | |
45 | /hosts/piedsjaloux.immae.eu/ | |
46 | /hosts/spip/sites/*/ | |
47 | /hosts/spip/spip* | |
48 | EOF | |
49 | OUT=$RSYNC_OUTPUT/$NAME | |
50 | rsync -XAavbrz --fake-super -e ssh --numeric-ids --delete \ | |
51 | --backup-dir=$BAK_BASE/$NAME --exclude-from=$TMP \ | |
52 | $DEST:$FOLDER . > $OUT || true | |
53 | ||
54 | ############## | |
55 | NAME="system" | |
56 | FOLDER="/" | |
57 | ||
58 | cd $BASE/$NAME | |
59 | cat > $TMP <<EOF | |
60 | /etc/ | |
61 | /srv/ | |
62 | /var/lib/ | |
63 | /var/spool/ | |
64 | /var/named/ | |
65 | /usr/local/ | |
66 | EOF | |
67 | OUT=$RSYNC_OUTPUT/$NAME | |
68 | rsync -XAavbrz -R --fake-super -e ssh --numeric-ids --delete \ | |
69 | --rsync-path='sudo rsync' \ | |
70 | --backup-dir=$BAK_BASE/$NAME \ | |
71 | --files-from=$TMP \ | |
72 | $DEST:$FOLDER . > $OUT || true | |
73 | ||
74 | ############## | |
75 | ssh $DEST sh -c "date > .last_backup" | |
76 | ||
77 | if [ -s "$TMP_STDERR" ]; then | |
78 | cat "$TMP_STDERR" | mail -Ssendwait -s "save_distant rsync error" "$MAILTO" | |
79 | fi |