Changes

From SME Server
Jump to navigationJump to search
3,077 bytes added ,  23:25, 21 December 2016
Line 1,376: Line 1,376:     
=== Extinction du serveur de sauvegarde ===
 
=== Extinction du serveur de sauvegarde ===
 +
Extrait du wiki d'Arnaud : https://wiki.guedel.eu/doku.php?id=Welcome:Fedora:BackupPC
 +
 +
Dans ma configuration actuelle, mon client Fedora effectue une sauvegarde avec BackupPC de mon serveur SME.
 +
À une heure précise, le serveur SME “réveille” donc la machine client via un wake-on-lan pour que ce dernier effectue la sauvegarde. Pour des raisons évidentes d'économie d'énergie, j'ai souhaité que la machine client s'éteigne automatiquement une fois la sauvegarde effectuée.
 +
 +
Le problème est alors le suivant : BackupPC ne prend la sauvegarde en considération seulement une fois le « post-job » positivement achevé.
 +
Donc si la commande d'extinction est située dans le post-job, celui-ci ne renvoie jamais de retour positif à BackupPC, vu que la machine sur laquelle il tourne est éteinte avant !!!
 +
 +
La création de scripts d'extinction enfants du post-job, avec des commandes pour récupérer le prompt avant la fin de l'exécution de la tâche (entre autre le « & ») s'est révélée infructueuse sur toute la ligne car backupPC s'entête à attendre la fin de chaque script enfant.
 +
 +
C'est quelque part sur la toile que j'ai trouvé la solution à ce problème: il faut que le post-job de BackupPC se contente de créer un fichier drapeau. L'extinction est elle réalisée via cron.d qui surveille la présence ou non de ce drapeau et qui déclenche l'arrêt de la machine le cas échéant.
 +
 +
Voilà mon script pre-job (qui au passage envoie le signal-event pre-backup à la SME):
 +
 +
#!/bin/bash
 +
ssh root@IP_SME /sbin/e-smith/signal-event pre-backup
 +
touch /etc/BackupPC/dump-start.flg
 +
exit 0;
 +
 +
Voilà mon script post-job (qui au passage envoie le signal-event post-backup à la SME):
 +
 +
#!/bin/bash
 +
ssh root@IP_SME /sbin/e-smith/signal-event post-backup
 +
mv /etc/BackupPC/dump-start.flg /etc/BackupPC/dump-end.flg
 +
exit 0;
 +
 +
Ainsi que l'entrée cron.d: /etc/cron.d/backuppc-halt
 +
 +
*/5 * * * * root [ -f /etc/BackupPC/dump-end.flg ] && sleep 3m && [ ! -f /etc/BackupPC/dump-start.flg ] && [ "$(/usr/bin/users)" = "(unknown)" ] && rm /etc/BackupPC/dump-end.flg && /usr/sbin/shutdown -h now
 +
 +
Pas besoin de relancer cron.d: les modifications sous le répertoire /etc/cron.d sont rescannées toutes les minutes(https://docs.fedoraproject.org/en-US/Fedora/21/html/System_Administrators_Guide/ch- Automating_System_Tasks.html)
 +
 +
ATTENTION: Pour Fedora22, il faut légèrement modifier l'entrée cron.d: /etc/cron.d/backuppc-halt
 +
 +
*/5 * * * * root [ -f /etc/BackupPC/dump-end.flg ] && sleep 3m && [ ! -f /etc/BackupPC/dump-start.flg ] && [ "$(/usr/bin/users)" = "" ] && rm /etc/BackupPC/dump-end.flg && /usr/sbin/shutdown -h now
 +
 +
Explications: cron cherche la présence du fichier « dump-end » toutes les 5 minutes. Si le fichier est présent, on attend 3 minutes au cas où une autre sauvegarde de BackupPC devrait se lancer, on vérifie qu'il n'y a pas de backup en cours (fichier dump-start), on vérifie qu'aucune session n'est ouverte, on efface le fichier drapeau et on éteint la machine.
 +
 +
Génialement simple, simplement génial et……. efficace!
 +
Et voilà !!!
    
=== Rapport de bugs ===
 
=== Rapport de bugs ===
3,054

edits

Navigation menu