#1 Le 07/01/2008, à 20:23
- thurston
Script: automatiser sauvegarde fichiers par copie sur serveur distant
Bonjour,
je souhaite utiliser un vieux pc pour m'en servir de serveur dédié à des sauvegardes uniquement. Ce PC est sur le reseau local, et attribuons lui :
MAC Adress: 00:11:22:33:44:55
Ip adresse: 192.168.0.10
son nom: PC-svgde
pour fixer les idées. L'idée est de synchroniser les données sources / fichiers du PC-server: repertoire + ses sous repertoires /home/Donnees avec le repertoire de sauvegarde du PC-svgde /backup/SVGDE-Rep
N'étant pas trop à l'aise en programmation bash, je donne le but du script. Merci aux à¢mes chariteuses qui peuvent me venir en aide:
#!/bin/bash
wakeonlan 00:11:22:33:44:55
sleep 120 #le temps que le PC-svgde s'allume
if ___ #verification que PC-svgde est bien présent..par un ping?
then
mkdir /media/SVGDE-TMP # creation du point de montage /media/SVGDE-TMP sur PC-server
mount 192.168.0.10:/backup/SVGDE-Rep /media/SVGDE-TMP
____ # synchronisation des données entre PC-server:/home/ Donnees et /media/SVGDE-TMP rsync??
umount /media/SGDE-TMP # démontage du repertoire de PC-svgde
rm -rf /media/SVGDE-TMP # suppression du point de montage devenu inutile
shutdown _#éteind le PC-svgde
_____ # envoi d'un PING et vérification de l'état du PC-svgde qui doit être éteint.
___ #envoie d'un email à administrator@laposte.net qui indique "sauvegarde réalisée & PC Coupé"
# on pourrait également prevoir si le PC ne s'est pas coupé par une boucle locale if fi
___ #sinon? envoie d'un email à administrator@laposte.net qui indique "probleme de sauvegarde"
fi
je n'ai mis aucun sudo car je ne sais pas trop quand je dois en mettre ou pas, dans les programmes bash. Je compte utiliser cron pour automatiser le process sur PC-server.
Je vais bien sur tenter l'experience du script par moi même, mais pas trop confiant...3 semaines d'Ubuntu: 1 serveur de fichiers en NFS commandé par wol + 2 postes client Ubuntu, avec serveur Samba, j'attaque maintenant les raffinements et ça ce corse un peu...mais toujours partant pour migrer 100% de PC windows sous Ubuntu (6 PCs au total).
Merci d'avance
Thurston
Dernière modification par thurston (Le 07/01/2008, à 20:25)
Hors ligne
#2 Le 07/01/2008, à 20:53
- Link31
Re : Script: automatiser sauvegarde fichiers par copie sur serveur distant
Tu ne peux pas monter l'arborescence d'un PC distant juste avec son adresse IP, il faut utiliser un protocole. Je te conseille d'utiliser OpenSSH (avec SCP et/ou SFTP), qui est sécurisé, assez facile d'utilisation, puissant...
Niveau applicatif, rsync me semble en effet le plus adapté. Il me semble qu'il s'interface avec SCP, pour ça il faudrait voir dans sa documentation.
Tu ne devrais pas tester la connexion avec un ping, je pense que le mieux est de lancer une session SSH en boucle tant qu'il y a un message d'erreur (variable $? différente de 0), et n'oublie pas de placer un sleep 1 dans la boucle
De même, je pense qu'il n'est pas nécessaire de vérifier que le PC s'est bien éteint, on peut partir du principe qu'à partir du moment o๠tu as lancé halt en root (à travers SSH évidemment) tout se passe normalement (oui je sais SSH en root c'est mal, mais c'est le seul moyen à ma connaissance d'éteindre un serveur à partir d'un script).
Enfin, il te faudra mettre en place un système de clés entre les deux machines, pour que le script ne réclame plus de mot de passe pour le SSH (avec éventuellement ssh-agent si tu es parano).
Je ne peux que te donner des pistes, ça serait beaucoup trop long de t'écrire un script tout prêt. Mais je pense que tout y est.
Dernière chose :
umount /media/SGDE-TMP # démontage du repertoire de PC-svgde
rm -rf /media/SVGDE-TMP # suppression du point de montage devenu inutile
Si la commande umount échoue, tu es dans la ***
Dernière modification par Link31 (Le 07/01/2008, à 20:55)
Hors ligne
#3 Le 07/01/2008, à 21:30
- thurston
Re : Script: automatiser sauvegarde fichiers par copie sur serveur distant
Bonjour Link31,
je ne comprends pas bien la notion de protocole. Si je fais un script sur un de mes PC clients pour monter un disque dur ca fonctionne bien??!!! du type:
#!/bin/bash
# test
# sudo chmod +x /etc/cron.daily/test
sudo mkdir /media/test
sudo mount -t nfs -o ro,soft 192.168.0.10:/home/donnees /media/test
Si c'est parce que le PC est sous un user quand je fais mon test, je pourrais utiliser la fonction de connexion automatique, pour que les 2 soient dans un "état" correct??
J'ai l'impression que je passe et à coté de quelque chose, et surement pour un demeuré mais tant pis!! Fuat que je comprenne.
Merci a+
Thurston
Hors ligne
#4 Le 07/01/2008, à 22:02
- Link31
Re : Script: automatiser sauvegarde fichiers par copie sur serveur distant
Là , tu utilises le protocole NFS. Dans ton premier script, tu n'indiquais pas de protocole, ça ne pouvait donc pas fonctionner.
Hors ligne
#5 Le 07/01/2008, à 22:09
- thurston
Re : Script: automatiser sauvegarde fichiers par copie sur serveur distant
Désolé,
je pensais que par défaut NFS était évident...
J'ai vu qu'il y avait une doc très bien faite sur rsync, et justement un serveur de snchronisation http://doc.ubuntu-fr.org/rsync
Je vais étudier tout ceci.
Merci
A+
Thurston
Hors ligne