Rsync

From My Mnemonic Rhyme
Jump to navigation Jump to search

Code Fetzen

rsync -aPx --numeric-ids /mnt /test
rsync -aPx --numeric-ids /test /mnt

Rsync Backup Howto

Quellsystem:

useradd -m -pPASSWORD crypto
passwd crypto

Root-rechte für den rsync-Befehl:

#visudo
crypto ALL=(root)NOPASSWD:/usr/bin/rsync

Das NOPASSWD soll später eine Abfrage im automatischen Betrieb verhindern.

Der Login über SSH soll mittels Keys erfolgen http://servers.linux.com/servers/04/...tid=119&tid=47

ssh-keygen -t dsa -b 2048 -f ~/rsync-key

Output: rsync-key, rsync-key.pub

Zielserver:

rsync-key.pub muss nach /home/crypto auf dem Backup-Server kopiert werden.

cd /home/crypto
mkdir ~/.ssh
chmod 700 ~/.ssh
mv ~/rsync-key.pub ~/.ssh/
cd ~/.ssh/
touch authorized_keys
chmod 600 authorized_keys
cat rsync-key.pub >> authorized_keys

IP Adresse einschränken:

vim /home/crypto/.ssh/authorized_keys
from="xxx.xx.xxx.xxx" ssh-dss AAAAB3NzaC...

Script

#!/bin/sh

echo "-----------------------------------"
echo "/usr/local/rsync_backup.sh started."

BACKUPDIR=/
TARGETDIR=/home/crypto/backup/
E1=/proc
E2=/tmp
E3=/lost+found
E4=/dev

BACKUPSERVER=xxx.xxx.xxx.xx

echo "Creating mysql-dump:  /usr/local/mysql_dump.sql.gz..."

PASSWD=mysqlrootpasswort
mysqldump -uroot -p$PASSWD --all-databases | gzip > /usr/local/mysql_dump.sql.gz

echo "...ready"

echo "Starting rsync to remote machine..."

rsync -a -z -e "ssh -i /root/rsync-key" --rsync-path='sudo /usr/bin/rsync' --bwlimit=200 --stats --delete --exclude=$E1 --exclude=$E2 --exclude=$E3 --exclude=$E4 $BACKUPDIR Backupchef@$BACKUPSERVER:$TARGETDIR

echo "...ready"

echo "/usr/local/rsync_backup.sh finished."
echo "-----------------------------------"