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