1 |
joko |
1.1 |
#!/bin/bash |
2 |
|
|
|
3 |
|
|
# -------------------------------------------------------- |
4 |
|
|
# simple backup script based on rsync and ssh keys |
5 |
|
|
# to provide data backup operations between |
6 |
|
|
# soulcube.psl.netfrag.org -> quepasa.netfrag.org. |
7 |
|
|
# |
8 |
|
|
# Install: |
9 |
|
|
# list/enumerate paths to backup in /etc/qbackup.list or |
10 |
|
|
# change this location below. |
11 |
|
|
# |
12 |
|
|
# Configure: |
13 |
|
|
. /etc/qbackup.conf |
14 |
|
|
# -------------------------------------------------------- |
15 |
|
|
|
16 |
|
|
if [ $1 == '-cc' ]; then |
17 |
|
|
echo "BACKUP_HOST=backup.nas.net |
18 |
|
|
BACKUP_USER=qbackup |
19 |
|
|
BACKUP_PATH=/data/BACKUP/`hostname` |
20 |
|
|
BACKUP_BWLIMIT=64 |
21 |
|
|
BACKUP_LIST=/etc/qbackup.list |
22 |
|
|
BACKUP_KEY=/etc/qbackup.key |
23 |
|
|
" > /etc/qbackup.conf |
24 |
|
|
exit |
25 |
|
|
fi |
26 |
|
|
|
27 |
|
|
# runtime config |
28 |
|
|
ssh=`which ssh` |
29 |
|
|
rsync=`which rsync` |
30 |
|
|
RSYNC_RSH="$ssh -i $BACKUP_KEY" |
31 |
|
|
sync="$rsync -azuv --bwlimit=$BACKUP_BWLIMIT" |
32 |
|
|
|
33 |
|
|
for entry in `cat $BACKUP_LIST`; do |
34 |
|
|
TARGET="$BACKUP_HOST:$BACKUP_PATH$entry" |
35 |
|
|
echo "Syncing $entry to $TARGET" |
36 |
|
|
cmd="$sync $entry $BACKUP_USER@$TARGET" |
37 |
|
|
echo `$cmd` |
38 |
|
|
done |