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/

Leave a Reply