SOLVED Script backup
-
Bonjour les copains.
J’ai un petits soucis.
J’ai réalisé des scripts de backup sur un serveur ftp .
J’ai mis mes scripts dans le répertoire /etc/cron.daily.
Le backup se passe bien. Par contre la rotation des sauvegardes ne fonctionne pas.*
Du coup je me retrouve avec une flopé de .tar.
J’ai réalisé un script également de sauvegarde en local, et un script de rotation. Le script de backup fonctionne. Mais la rotation ne fonctionne que si je passe en ligne de commande. Si je le met dans le cron la tache ne fonctionne pas.
Voici mon script de backup sur ftp dont la rotation ne fonctionne pas :FTPU="XXXXX" FTPP="XXXXX" FTPS="192.168.1.12"
NOW=$(date +"%d-%m-%Y") ### local directory to backup ### FILE="/home/libertempo/Backup" retention=`date +%d-%B-%Y --date='7 day ago'` lftp -u $FTPU,$FTPP -e "cd LIBERTEMPO;mkdir $NOW;cd $NOW;mirror -R $FILE /LIBERTEMPO/$NOW;quit" $FTPS # Rotation des sauvegardes lftp ftp://$FTPU:$FTPP@$FTPS -e "rm -rf $retention;quit"
-
bon voilà cela fonctionne. j’ai trouvé un peu de temps pour le faire.
En fait déjà je me suis trompé dans la variable retention.
J’ai mis un %B qui indique le mois écrit par exemple décembre au lieu du du chiffre comme dans ma varaible NOW.
Ensuite pour le rm je n’étais pas dans le bon dossier. Du coup en rajoutant la racine et la variable cela supprime bien le dossier.Du coup voilà mon script entier si jamais cela veut servir a quelqu’un :
FTPU="yyyyy" FTPP="xxxx" FTPS="192.168.1.12" NOW=$(date +"%d-%m-%Y") FILE="/home/admin-sbs/Sauvegarde" retention=`date +%d-%m-%Y --date='7 day ago'` lftp -u $FTPU,$FTPP -e "cd SRVNOETHYS;mkdir $NOW;cd $NOW;mirror -R $FILE /SRVNOETHYS/$NOW;quit" $FTPS lftp ftp://$FTPU:$FTPP@$FTPS -e "rm -rf /SRVNOETHYS/$retention;quit"
-
De souvenir rm -rf n’est pas une commande ftp.
Mais le plus simple c’est d’avoir les logs.Après sache qu’un très bon outil existe tel que backup manager
https://doc.ubuntu-fr.org/backup-manager -
:oups: pas trop l’habitude d’utiliser lftp, du coup je ne connaissais pas ses commandes
Pour moi @Elberton c’est $retention qu’il ne comprend pas
Je préfère le décortiquer en reprenant tes variables :
# Format de la date format_date='%d-%B-%Y' # Variable de date du jour, en fonction du format choisi date=`date +${format_date}`; # Le nombre de jour que tu souhaite archiver jretention="7"; # Calcul du nombre de jour, remontant à plus de 7 jour(s) retention=`date --date "-${jretention} days" +${format_date}`;
lftp ftp://${FTPU}:${FTPP}@${FTPS} -e "rm -rf ${retention} ;ls ; quit";
Pour avoir des logs rajoute
# Le chemin du rapport rapport='/home/cabanelibre/rapport.log';
lftp ftp://${FTPU}:${FTPP}@${FTPS} -e "rm -rf ${retention} ;ls ; quit" >> ${rapport};
-
ok ça marche.
par contre je te dirai sa mardi car je suis sur un autre site et j’ai pas accès à la bécane à distance. -
Pour tester et faire du debug que ce soit ne perl, python ou bash j’utilise les options adéquat, regarde pour lancer ton script avec du bash -x nom_de_ton_script, si en plus tu mets de jolie echo tout plein tu verra à quelle étape à coup sûr il se plante.
N’hésite pas non plus à te faire des sorties d’erreur propre avec des conditions.De ce côté j’aime bien le perl car il permet d’exporter le résultat assez simplement d’une commande shell dans un log, tu peux ainsi renvoyer l’output de ta commande directement dans ton fichier de log et avoir le déroulé d’un rsync par exemple complet.
D’ailleurs pourquoi faire du ftp plutot que de t’appuyer sur rsync, tu as une option pour la destruction :
http://www.noah.org/wiki/Rsync_backup
Burp : je viens de voir l’autre fil de discussion, oki je comprends pourquoi ftp.
Du coup beaucoup plus complexe pour les non utilisateurs de python il y a la possibilité d’utiliser la libftp de python pour faire ça.
Sinon viteuf lftp doit pouvoir répondre à tes besoins en exécutant un scripts via ftp justement :
Un exemple trouvé sur le net à vérifier :
https://blog.m0le.net/2012/02/17/le-petit-script-de-backup-de-nono/
-
J’ai réinstallé mon serveur car j’ai fait craché mon apache. Je vais voir si je peux installer urbackup client vu que j’en ai un srv. Mais comme il va être sur une dame je dois testé
-
@elberton a dit dans Script backup :
il va être sur une dame je dois testé
Il va être dessus :diable: ?
Sinon pour du backup j’ai testé Borg et bareos, le premier est vraiment sympa (tout en SSH) le deuxième est déjà bien plus prise de tête à mettre ne place te à configurer, mais tous est scriptable donc …
-
lftp fonctionne nickel pour moi
-
pas une dame, une dmz je voulais dire. C’est le correcteur orthographique du tél…
-
C’est bon pour toi ? @Elberton qu’on mette résolu ou pas ?
ça me fait penser qu’il va falloir que je fasse les brochures d’explication d’utilisation de ce nouvelle iceberg :oups:
-
bon voilà cela fonctionne. j’ai trouvé un peu de temps pour le faire.
En fait déjà je me suis trompé dans la variable retention.
J’ai mis un %B qui indique le mois écrit par exemple décembre au lieu du du chiffre comme dans ma varaible NOW.
Ensuite pour le rm je n’étais pas dans le bon dossier. Du coup en rajoutant la racine et la variable cela supprime bien le dossier.Du coup voilà mon script entier si jamais cela veut servir a quelqu’un :
FTPU="yyyyy" FTPP="xxxx" FTPS="192.168.1.12" NOW=$(date +"%d-%m-%Y") FILE="/home/admin-sbs/Sauvegarde" retention=`date +%d-%m-%Y --date='7 day ago'` lftp -u $FTPU,$FTPP -e "cd SRVNOETHYS;mkdir $NOW;cd $NOW;mirror -R $FILE /SRVNOETHYS/$NOW;quit" $FTPS lftp ftp://$FTPU:$FTPP@$FTPS -e "rm -rf /SRVNOETHYS/$retention;quit"
Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License propulsé par NodeBB