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