Salut à tous !
Dans le cadre d'un serveur au boulot, je doit étudier une solution de sauvegarde "double" : à la fois sur un NAS (là pas de problème, NFS powered ) et sur un lecteur de bande (là ça se corse).
Le script doit pouvoir bosser seul, aussi bien en copie, qu'en suppression des sauvegardes de plus de "x" jours, pour récupérer un dossier (là "www", serveur web en l'occurrence, pas dur à trouver )
Voilà ce que ça donne pour mon script NAS (mon NAS est auparavant monter dans le fstab en tant que /media/nas) :
Code :
- #!/bin/bash
- # création d'un répertoire temporaire
- mkdir /home/monserver/SAVE
- chmod -R 777 /home/monserver/SAVE
- # récupération et compression
- tar cvfz /home/monserver/SAVE/sauve.$(date '+%d-%m-%y').tar.gz /home/monserver/www
- # droit pour la copie
- chmod -R 777 /home/monserver/SAVE
- # suppression des sauvegardes de plus de 7 jours
- rm -f /media/nas/serverweb/sauve.$(date '+%d-%m-%y' --date '8 days ago').tar.gz
- rm -f /media/nas/serverweb/sauve.$(date '+%d-%m-%y' --date '9 days ago').tar.gz
- rm -f /media/nas/serverweb/sauve.$(date '+%d-%m-%y' --date '10 days ago').tar.gz
- rm -f /media/nas/serverweb/sauve.$(date '+%d-%m-%y' --date '11 days ago').tar.gz
- rm -f /media/nas/serverweb/sauve.$(date '+%d-%m-%y' --date '21 days ago').tar.gz
- rm -f /media/nas/serverweb/sauve.$(date '+%d-%m-%y' --date '22 days ago').tar.gz
- rm -f /media/nas/serverweb/sauve.$(date '+%d-%m-%y' --date '23 days ago').tar.gz
- rm -f /media/nas/serverweb/sauve.$(date '+%d-%m-%y' --date '24 days ago').tar.gz
- #copie de la sauvegarde du jour
- chmod -R 777 /media/nas/serverweb/
- cp -a /home/monserver/SAVE/sauve.$(date '+%d-%m-%y').tar.gz /media/nas/serverweb
- #suppression de notre sauvegarde sur le serveur
- rm -R /home/monserver/SAVE
|
Jusque là, ça marche, no soucis. Maintenant ça se corse, le script de la sauvegarde sur bande, avec tar (restons simple, j'ai même mis un fichier de log dessus ) :
Code :
- #!/bin/bash
- # script de sauvegarde sur bande
- #mon log de sauvegarde
- echo $(date '+%d-%m-%y') >> /home/monserver/sauvegarde.log
- # création d'un répertoire temporaire
- mkdir /home/monserver/SAVE
- chmod -R 777 /home/monserver/SAVE
- # récupération et compression
- tar cvfz /home/monserver/SAVE/sauve.$(date '+%d-%m-%y').tar.gz /home/monserver/www
- # droit pour la copie
- chmod -R 777 /home/monserver/SAVE
- # Rembobinage de la bande si necessaire
- mt -f /dev/st0 rewind
- RETVAL=$?
- case "$RETVAL" in
- #bande présente
- 0)
- time tar -cvf /dev/st0 /home/monserver/SAVE >> /home/monserver/sauvegarde.log
- tar tvf /dev/st0 >> /home/monserver/sauvegarde.log
- df -h /dev/st0 >> /home/monserver/sauvegarde.log
- sleep 10
- # Ejection de la bande
- # mt -f /dev/st0 offline
- ;;
- # bande absente
- 1)
- echo "Pas de bande" >> /home/monserver/sauvegarde.log
- ;;
- esac
- echo "------------------------------------" >> /home/monserver/sauvegarde.log
- #suppression de notre sauvegarde sur le serveur
- rm -R /home/monserver/SAVE
|
Donc là aussi, ça marche, mais je ne sais pas comment implémenter ma suppression automatique des sauvegardes de plus de 7 jours (ou plus, si on décide que la sauvegarde sur bande est par semaine par exemple) sur le script de la sauvegarde sur bande
Quelqu'un a une ou des idées dessus ?
Message édité par bardiel le 06-04-2010 à 13:12:00
---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D