A: préparation des 2 serveurs
1: Génération de 2 clés(privé/public) sur le serveur maître
dans une console en tant que root:
#sshkeygen -t rsa (validé tout par défaut) #cd /root/.ssh/ #ls #id-ras id-ras.pub
2 Communiquer la clé public à la machine cible
#scp /root/.ssh/id-rsa.pub login@IP:/root
sur la machine cible on doit retrouver la clé public:
#cd /root #ls #id-ras.pub
3 Autorisation de la synchro
#cd /etc/ssh/ #vi sshd_config
enlever le # devant la ligne:
Authorizedkeysfile .ssh/authorized_keys
4 Recopier la clé public sur la machine cible dans un fichier authorized_keys
si le fichier /root/.shh/authorized_keys, il faut le créer:
#cd /root/.ssh #touch authorized_keys
ensuite copier la clé public dans ce fichier
#cat /root/id_rsa.pub > /root/.ssh/authorized_keys
Si plusieurs machines, ne pas régénéré la clé.
Il suffit copier la clé public sur toutes les machines cible.
Synchro des données avec rsync
on installe sur le serveur rsync
#apt-get install rsync
ensuite on se place à la racine et on synchronise
#cd / #rsync -avznu --delete --stats /répertoire/dossiers/ login@IP:/répertoir/dossiers/
Si ACL groupes secondaire:
#getfacl -R /répertoire/dossiers/ > acl.save #scp acl.save login@IP:/répertoir/dossiers #setfacel --restore=/répertoir/*/acl.save
refaire la même manip sur tous les dossiers.
On peut créer un script qui sauvegardera nos répertoires/dossiers tout les jours grâce au crontab
De même il faut penser à faire des dumps sql quotidien et on synchronise le dossier contenant les dumps (sur la machine cible on peut automatiser l’import des dumps sql avec des cripts appelés depuis le crontab)
Par ailleurs, et de manière générale, il est conseillé d’exclure du transfert les caches et fichiers systèmes temporaire du serveur source afin d’éviter tout conflit sur le serveur de destination.
Voici une liste non-exhaustive de quelques un des dossiers pouvant contenir ce type de fichiers dans un serveur exécutant une distribution GNU/Linux :
- /dev/*
- /proc/*
- /sys/*
- /tmp/*
- /run/*
- /media/*
- /lost+found
Une fois la liste des dossiers ou sous-dossiers à exclure déterminée, l’argument --exclude
permet d’indiquer à rsync qu’il convient d’ignorer ces derniers lors de la copie.
Cet argument devra être répété autant de fois qu’il y a de dossiers ou de sous-dossiers à exclure, et placé en fin de commande. La structure générale d’une telle commande sera donc rsync --exclude="Folder_Name" --exclude="Other_Folder_name" source/ destination/