Rsync

Backupiranje /var/www/ direktorija sa server01.example.com na backup.example.com

Prvo treba dodati rsync paket na sve servere:
apt-get install rsync

Pokretanje prve sinkronizacije sa server01.example.com i server02.example.com na backup.example.com. Pokrenuti na backup serveru!!!
 rsync -azv -e ssh root@server01.example.com:/var/www/ /var/backup/server01/
 rsync -azv -e ssh root@server02.example.com:/var/www/ /var/backup/server02/

Kreiranje ključa za sinkronizaciju server01.example.com. Pokrenuti na backup serveru!!!
mkdir /root/rsync
ssh-keygen -t dsa -b 1024 -f /root/rsync/mirror-rsync01-key
scp /root/rsync/mirror-rsync01-key.pub root@server01.example.com:/root/
Ne unositi šifru već samo dva puta stisnuti Enter!

Kreiranje ključa za sinkronizaciju server02.example.com. Pokrenuti na backup serveru!!!
ssh-keygen -t dsa -b 1024 -f /root/rsync/mirror-rsync02-key
scp /root/rsync/mirror-rsync02-key.pub root@server02.example.com:/root/

Podešavanje ključa na server01.example.com:
mkdir ~/.ssh
chmod 700 ~/.ssh
mv ~/mirror-rsync01-key.pub ~/.ssh/
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
cat mirror-rsync01-key.pub >> authorized_keys
nano /root/.ssh/authorized_keys

te dodati slijedeću liniju na sami početak authorized_keys datoteke, postojeći tekst staviti u novu liniju!:
command="/root/rsync/checkrsync",from="backup.example.com",no-port-forwarding,no-X11-forwarding,no-pty

Podešavanje ključa na server02.example.com:
mkdir ~/.ssh
chmod 700 ~/.ssh
mv ~/mirror-rsync02-key.pub ~/.ssh/
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
cat mirror-rsync02-key.pub >> authorized_keys
nano /root/.ssh/authorized_keys

te dodati slijedeću liniju na sami početak authorized_keys datoteke, postojeći tekst staviti u novu liniju!:
command="/root/rsync/checkrsync",from="backup.example.com",no-port-forwarding,no-X11-forwarding,no-pty

Na server01.example.com i server02.example.com napraviti:
mkdir ~/rsync
nano ~/rsync/checkrsync  

dodati:
#!/bin/sh

case "$SSH_ORIGINAL_COMMAND" in
*\&*)
echo "Rejected"
;;
*\(*)
echo "Rejected"
;;
*\{*)
echo "Rejected"
;;
*\;*)
echo "Rejected"
;;
*\<*)
echo "Rejected"
;;
*\`*)
echo "Rejected"
;;
rsync\ --server*)
$SSH_ORIGINAL_COMMAND
;;
*)
echo "Rejected"
;;
esac

chmod 700 ~/rsync/checkrsync

Na backup serveru ponovno pokrećemo rsync:
rsync -azv --delete-after -e "ssh -i /root/rsync/mirror-rsync01-key" root@server01.example.com:/var/www/ /var/backup/server01/
rsync -azv --delete-after -e "ssh -i /root/rsync/mirror-rsync02-key" root@server02.example.com:/var/www/ /var/backup/server02/

Kreiranje cron-a na backup server:
crontab -e

Pokretanje rsync-a u 4 ujutro svaki dan i slanje izvještaja o backupiranju na email:
0 4 * * * /usr/bin/rsync -azv --delete-after -b --backup-dir=/var/backup/archive/server01/ -e "ssh -i /root/rsync/mirror-rsync01-key" root@server01.example.com:/var/www/ /var/backup/server01/ | mail -s "Rsync backup server01" reports@example.com
30 4 * * * /usr/bin/rsync -azv --delete-after -b --backup-dir=/var/backup/archive/server02/ -e "ssh -i /root/rsync/mirror-rsync02-key" root@server02.example.com:/var/www/ /var/backup/server02/ | mail -s "Rsync backup server02" reports@example.com


U crvenoj boji se varijable koje se mogu mijenjati, npr. root označava korisnika, server01.backup.com je adresa servera.

Što znače opcije?
a - archive (arhiviranje), -a znači isto što i -rlptgoD
z - compress (kompresiranje prilikom transfera)
v - verbose (detaljne informacije)
b - backup

r - recursive (rekurzivno čitanje direktorija)
l - links (kopiranje symlinkova)
p - permissions (dozvole)
t - time (spremanje vremena)
g - group (spremanje grupe vlasnika datoteke/direktorija)
o - owner (spremanje vlasnika datoteke/direktorija)
D - devices (kopiranje uređaja)
Comments