Monday, August 2, 2010

Backup linux server - Rsync Backup - solutie backup

Solutie de backup folosind rsync. Rsync backup tutorial complet.
Avem 2 masini: client, server. Pe client dorim sa avem o copie fidela a unor directoare de pe server.
Este necesar sa fie deschise in paralel 2 shell-uri pe ambele masini, pentru a rula comenzile intercalat.
In comenzile de mai jos cuvintele “server” si “client” se pot inlocui cu numele masinilor pentru o utilizare mai usoara.
client:
su -
cd /root
mkdir rsync-server
cd rsync-server
ssh-keygen -t dsa -b 1024 -f rsync-server-key

server:
su -
cd /home
mkdir rsyncclient
useradd -d /home/rsyncclient rsyncclient
chown -R rsyncclient rsyncclient


client:
# — copiem rsync-server-key.pub pe server (securizat, folosind scp):
scp rsync-server-key.pub root@server:/root/
server:
mv /root/rsync-server-key.pub /home/rsyncclient
cd /home/rsyncclient
mkdir .ssh
chmod 700 .ssh
mv rsync-server-key.pub .ssh/
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
cat rsync-server-key.pub >> authorized_keys
cd ..
mcedit validate-rsync

#!/bin/sh
case "$SSH_ORIGINAL_COMMAND" in
*\&*)
echo "Rejected"
;;
*\(*)
echo "Rejected"
;;
*\{*)
echo "Rejected"
;;
*\;*)
echo "Rejected"
;;
*\<*)
echo "Rejected"
;;
*\`*)
echo "Rejected"
;;
*\|*)
echo "Rejected"
;;
rsync\ --server*)
$SSH_ORIGINAL_COMMAND
;;
*)
echo "Rejected"
;;
esac
chmod +x validate-rsync
chmod 700 validate-rsync

# — validate-rsync permite doar rularea comenzilor rsync pentru sesiunea deschisa de pe client
chown -R rsyncclient /home/rsyncclient
mcedit .ssh/authorized_keys

# — adaugam ca prefix ip-ul clientului, pentru a permite conexiuni doar de pe client:
from="ip_client",command="/home/rsyncclient/validate-rsync" ssh-dss ....
client:
# — Comanda de backup:
rsync -az -e "ssh -i /root/rsync-server/rsync-server-key" rsyncclient@server:/DIRECTORY_TO_BACKUP /BACKUP-STORE-CLIENT/

No comments: