| 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 |