Comment utiliser Rsync pour sauvegarder un site web Ispconfig ?

Définition

Qu'est ce que Rsync ?

Rsync est un logiciel de synchronisation de fichiers en ligne de commande. Il va permettre de copier les fichiers d'un endroit vers un autre en les synchronisant en fonction de la source. 

Lors de la première sauvegarde de vos fichiers, Rsync va effectuer une sauvegarde complète en fonction de la source. Ensuite, il effectuera des sauvegardes partielles des données. En effet, il ne sauvegardera que les fichiers de la source qui ont été modifié depuis la dernière sauvegarde.

Procédure

Comment générer vos clés RSA sur ISPConfig ?

1. Connectez-vous en SSH sur votre serveur ISPConfig et introduisez la commande suivante:

$ ssh-keygen -t rsa -b 2048

Lors de la génération des clés, ces dernières seront mise en place dans le dossier "/root/.ssh/id_rsa" de votre serveur privé.

N'entrez pas de passphrase, validez en appuyant sur la touche "Entrée" de votre clavier. En effet, dès que vous allez indiquer une passphrase, cette dernière sera systématiquement demandée afin de pouvoir vous connecter à votre espace de sauvegarde distant.

  • id_rsa: il s'agit de votre clé privé qu'il ne faudra pas diffuser
  • id_rsa.pub: il s'agit de la clé publique.

 

2. Transférez la clé publique sur votre espace de sauvegarde en ligne par le biais de la commande ssh-copy-id.

$ ssh-copy-id -i /root/.ssh/id_rsa.pub utilisateur@serveur_distant
  • Utilisateur: doit être remplacé par l'identifiant concerné
  • Serveur_distant: doit être remplacé par l'IP du serveur de sauvegarde

Lorsque vous aurez validé la commande, le mot de passe de l'utilisateur vous sera demandé afin de pouvoir vous connecter au serveur et déposer le fichier "id_rsa.pub".

 

Mise en place du script de sauvegarde en ligne avec Rsync.

Le script ci dessous va vous permettre de sauvegarder vos données sur votre espace de sauvegarde en ligne LWS.

1. Créez le fichiers sauvegarde.sh dans le dossier script:

nano /scripts/sauvegarde.sh

2. Copiez-coller le script se trouvant ci dessous et sauvegarder votre script en cliquant simultanément sur [CTRL] + [X]

#!/bin/sh
jour='date+%d-%B-%Y'
log="/logs/"
local="/public_html/"
distant="/files/"
hostssh="ip_serveur"
userssh="identifiant"

echo "-------------------------------------------------------------" > $log/sauvegarde_$jour.log
# nom de la sauvegarde dans le journal
echo "Sauvegarde de $local du $(date +%d-%B-%Y)" >> $log/sauvegarde_$jour.log
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log
# heure de début du transfert dans le journal
echo "Heure de demarrage de la sauvegarde : $(date +%H:%M:%S)" >> $log/sauvegarde_$jour.log
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log
# transfert des fichiers
rsync -az --stats -e ssh $local $userssh@$hostssh:$distant >> $log/sauvegarde_$jour.log
# -a : mode archivage ( équivalent -rlptgoD ).
# -z : compression des données pendant le transfert.
# -e : pour spécifier l’utilisation de ssh
# -- stats donne des informations sur le transfert (nombre de fichiers…).
# --delete-after : supprime les fichiers qui n’existent plus dans la source après le transfert dans le dossier de destination.
status=$?
echo "" >> $log/sauvegarde_$jour.log
#code d'erreurs rsync
case $status in
0) echo Succès >> $log/sauvegarde_$jour.log;;
1) echo Erreur de syntaxe ou d'utilisation >> $log/sauvegarde_$jour.log;;
2) echo Incompatibilité de protocole >> $log/sauvegarde_$jour.log;;
3) echo Erreurs lors de la sélection des fichiers et des répertoires d'entrée/sortie >> $log/sauvegarde_$jour.log;;
4) echo Action non supportée : une tentative de manipulation de fichiers 64-bits sur une plate-forme qui ne les supporte pas \
; ou une option qui est supportée par le client mais pas par le serveur. >> $log/sauvegarde_$jour.log;;
5) echo Erreur lors du démarrage du protocole client-serveur >> $log/sauvegarde_$jour.log;;
6) echo Démon incapable d'écrire dans le fichier de log >> $log/sauvegarde_$jour.log;;
10) echo Erreur dans la socket E/S >> $log/sauvegarde_$jour.log;;
11) echo Erreur d'E/S fichier >> $log/sauvegarde_$jour.log;;
12) echo Erreur dans le flux de donnée du protocole rsync >> $log/sauvegarde_$jour.log;;
13) echo Erreur avec les diagnostics du programme >> $log/sauvegarde_$jour.log;;
14) echo Erreur dans le code IPC>> $log/sauvegarde_$jour.log;;
20) echo SIGUSR1 ou SIGINT reçu >> $log/sauvegarde_$jour.log;;
21) echo "Une erreur retournée par waitpid()" >> $log/sauvegarde_$jour.log;;
22) echo Erreur lors de l'allocation des tampons de mémoire principaux >> $log/sauvegarde_$jour.log;;
23) echo Transfert partiel du à une erreur >> $log/sauvegarde_$jour.log;;
24) echo Transfert partiel du à la disparition d'un fichier source >> $log/sauvegarde_$jour.log;;
25) echo La limite --max-delete a été atteinte >> $log/sauvegarde_$jour.log;;
30) echo Dépassement du temps d'attente maximal lors d'envoi/réception de données >> $log/sauvegarde_$jour.log;;
35) echo Temps d’attente dépassé en attendant une connection >> $log/sauvegarde_$jour.log;;
255) echo Erreur inexpliquée >> $log/sauvegarde_$jour.log;;
esac
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log
# heure de fin dans le journal
echo "Heure de fin de la sauvegarde : $(date +%H:%M:%S)" >> $log/sauvegarde_$jour.log
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log
exit
  • IP_Serveur: doit être remplacé par l'ip de votre formule de sauvegarde en ligne
  • Utilisateur: doit être remplacé par le nom d'utilisateur qui a été géréné pour l'espace de sauvegarde en ligne.

 

Comment automatiser le Script de sauvegarde ?

Vous pouvez automatiser la sauvegarde en mettant en place une tache cron. Lors de la mise en place de cette tâche, il vous faudra indiquer l'emplacement de votre fichier "sauvegarde.sh"

 

Pour aller plus loin

Conclusion

Vous êtes désormais en mesure de mettre en place une sauvegarde automatique de votre serveur ISPConfig vers espace de sauvegarde en ligne avec LWS. IL vous est possible de définir les fichiers à inclure ou à exclure de votre sauvegarde en ligne.

N'hésitez pas à partager vos remarques et vos questions !

Notez cet article


Vous avez noté 0 étoile(s)

Cet article vous a-t-il été utile ?

Merci !

N'hésitez pas à commenter nos pages afin de nous aider à les améliorer si besoin.

Vous n'avez pas trouvé votre réponse ?

Envoyez nous un message afin d'avoir une réponse rapidement



Top