Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/03/2011, à 17:09

Bakuna

[RESOLU]Backup FTP OVH incrémentale

Bonjour,
Voilà je possède un serveur Ubuntu 10.10 chez OVH avec un Backup FTP .
Je souhaiterais faire des sauvegardes incrémentielle  de mon /home vers le Backup FTP  tout le les soirs .
J'ai trouvais cette doc : http://www.dansteph.com/backupftp.php qui a l'aire intéressant mais mais la solution abordé consiste à avoir plusieurs copie d'une sauvegarde sur le Backup FTP et de les supprimer tout les 30 jours en les remplaçant par d'autres .
Mais moi ce que je veux c'est une sauvegarde incrémentielle tout les soirs on copie seulement les fichiers qui ont été modifiés depuis la dernière sauvegarde.

Merci d'avance

Dernière modification par Bakuna (Le 24/03/2011, à 16:32)

Hors ligne

#2 Le 09/03/2011, à 00:07

benco

Re : [RESOLU]Backup FTP OVH incrémentale

Hello,

ma modeste contribution ...

Tout ce que tu as à changer pour que le script backupftpovh.sh réponde à tes besoins, c'est la ligne 55 :

#compression dun ou plusieurs repertoires choisi en parametre
tar cfzX $TEMPDIR$FILENAME.gz $EXCLUDEFILE $SAVEDIR $SAVEDIR1 $SAVEDIR2

C'est cette commande qui crée ce qui va être envoyé sur le backup FTP.

Si tu veux vraiment faire de l'incrémentiel, il faut la changer. Mais je connais pas assez bien les paramètres de tar pour t'aider, d'ailleurs je ne suis pas certain que ça soit possible avec cette commande ...
Une piste à envisager avec précaution vu mes connaissances : conserver le dernier backup sur ton serveur, utiliser rsync pour créer la différence, puis tar/gz pour compresser le tout ?
Il se fait tard, pas le temps d'éplucher le man de rsync qui est assez conséquent, désolé big_smile

Pour finir, je me permet de te poser cette question : quelle est la raison qui te motive à ne pas vouloir faire des sauvegardes complètes ? Le cpu, le débit, le stockage ?
Considère que la restauration sera grandement facilitée si tu fais des copies complètes smile

Au plaisir de te lire

Hors ligne

#3 Le 09/03/2011, à 10:03

Bakuna

Re : [RESOLU]Backup FTP OVH incrémentale

En faite la suis  en stage! Le sauvegarde incrémentielle est ce dont l'entreprise où je fait mon stage a besoins car il n'ont pas beaucoup d'espace de stockage. Il ne veulent pas se retrouver un jour avec le backup FTP remplie . Et avec la solution dont je mi le lien au dessus on va avoir environ 30 copie de la même sauvegarde tout les mois (d'après ce que j'ai compris). La Avec 30 copie de la même sauvegarde tout les mois, le backup FTP va vite se remplir. 

J'ai aussi pensé à une chose comme il existe des logiciel qui font de la sauvegarde incrémentiel mais sur le serveur  lui même (exemple : backuppc), il faut faire un scripte qui fera le transfert de la sauvegarde incrémentielle réalisé sur le serveur vers le Backup FTP.(en écrasant la vieille version présent sur le backup FTP).

je débute sous linux. ^^

Merci d'avance.

Dernière modification par Bakuna (Le 09/03/2011, à 10:12)

Hors ligne

#4 Le 09/03/2011, à 11:34

Bakuna

Re : [RESOLU]Backup FTP OVH incrémentale

Je viens de lire la doc http://doc.ubuntu-fr.org/tutoriel/sauve … avec_rsync sur rsync
Et je trouve que le sauvegarde lancée régulièrement avec cron est acceptable  le seul problème est la conception du scripte qui fera le transfert vers le backup ftp .

Hors ligne

#5 Le 09/03/2011, à 16:36

Bakuna

Re : [RESOLU]Backup FTP OVH incrémentale

Voilà j'ai modifier le début du scripte qui est bas de site http://www.dansteph.com/backupftp.php qui permet de  :
Lance un script shell "backupftpovh.sh" qui va archiver et compresser les trois répertoires les plus important "/home" "/usr/local/apache/conf" et "/var/named" en excluant "/home/ovh" et "/home/log/". Le backup étant Lancé toujours les même jour du mois et le nom de l'archive contenant la date du jour (1,4,8...) les backup seront remplacés chaque mois par le nouveaux, vous conservez ainsi en permanence 4, 8 ou même 30 backup par mois à votre convenance. Notez que l'archive transferée ou non est supprimée de votre disque dur à la fin du script.

Mais je voudrais faire une sauvegarde tout les soirs, en écrasant les vieilles versions de sauvegardes. par les nouvelles.
Par exemple : remplacer le fichier samba.zip d'hier par celle d'aujourd'hui .En gros je veut avoir une seule sauvegarde samba.zip sur le Backup FTP mais pas plusieurs comme sur le scripte original.

#!/bin/bash

#Mise à jour de la suavegarde incerémentielle avec rsync
rsync -rltgoDv --del --ignore-errors --force /home/echange/ /home/SAV/samba/
rsync -rltgoDv --del --ignore-errors --force /subversion/depots/ /home/SAV/svn/
#########################################################################
# CONNECTION AU BACKUP FTP
#########################################################################
SERVER="XXX.XXX.XXX.X"                  #Serveur backup d'OVH
USER="XXX"                              #Votre nom d'utilisateur
PASS="XXX"                              #Votre password
EMAIL="XXX@XXX.com"                     #Pour envoi mail si backup echoue
MAILSIOK="O"                            #Mettre "O" si on veut un mail aussi si backup ok
SAVEDIR="/home/SAV/samba"      #Backup partage samba sans slash a la fin
SAVEDIR1="/home/SAV/svn"       #Backup subversion SANS slash a la fin
#########################################################################

#autres parametre a éditer seulement par confirmé------------------------
FILENAME=`date +"%d"`_backupsite.tar                #nom du fichier
TEMPDIR="/home/backupsite/"                         #repertoire temporaire de home
EXCLUDEFILE="/home/backupsite/backup_exclude.txt"   #ce fichier doit contenir ...
#fin parametres, rien pour vous plus bas---------------------------------

STARTTIME=`date +%s`

#pour traduire les codes d'erreur de ncftpput en texte
declare -a CDERR
CDERR[1]="Could not connect to remote host."
CDERR[2]="Could not connect to remote host - timed out."
CDERR[3]="Transfer failed."
CDERR[4]="Transfer failed - timed out."
CDERR[5]="Directory change failed."
CDERR[6]="Directory change failed - timed out."
CDERR[7]="Malformed URL."
CDERR[8]="Usage error."
CDERR[9]="Error in login configuration file."
CDERR[10]="Library initialization failed."
CDERR[11]="Session initialization failed."
CDERR[142]="Delai depassé pour la connexion."

#envoi des infos sur le log authpriv (le log "secure" sur OVH)
DATE=`date +%H:%M:%S`
logger -p authpriv.info "[$0] -->Debut de backup de $SAVEDIR a $DATE"
echo "[$0] -->Debut de backup de $SAVEDIR a $DATE"

#compression dun ou plusieurs repertoires choisi en parametre
tar cfzX $TEMPDIR$FILENAME.gz $EXCLUDEFILE $SAVEDIR $SAVEDIR1
RESULT=$?
if [ "$RESULT" != "0" ]; then
        DATE=`date +%H:%M:%S`
        logger -p authpriv.info "[$0] -->ERREUR TAR à $DATE Backup NON effectué."
        echo "[$0] -->ERREUR TAR à $DATE Backup NON effectué."
        echo "Erreur TAR le backup FTP sur OVH non effectue" | mail -s 'ERREUR BACKUP FTP OVH' $EMAIL
        exit $RESULT
fi

ncftpput -m -u $USER -p $PASS $SERVER "/" $TEMPDIR$FILENAME.gz
RESULT=$?
FILESIZE=`ls -l $TEMPDIR$FILENAME.gz | awk '{print $5}'`
FILESIZE=$(($FILESIZE/1000000))
rm -f $TEMPDIR$FILENAME.gz
if [ "$RESULT" != "0" ]; then
        DATE=`date +%H:%M:%S`
        logger -p authpriv.info "[$0] -->ERREUR: ${CDERR[$RESULT]} à $DATE Backup NON effectué."
        echo "[$0] -->ERREUR: ${CDERR[$RESULT]} à $DATE Backup NON effectué."
        echo "[$0] -->ERREUR: ${CDERR[$RESULT]} à $DATE Backup NON effectué." | mail -s 'ERREUR BACKUP FTP OVH' $EMAIL
else
        TOTALTIME=$(((`date +%s`-$STARTTIME)/60))
        DATE=`date +%H:%M:%S`
        logger -p authpriv.info "[$0] -->Fin de backup normal de $SAVEDIR a $DATE. Durée: $TOTALTIME mn. Taille: $FILESIZE Mb"
        echo "[$0] -->Fin de backup normal de $SAVEDIR a $DATE.  Durée: $TOTALTIME mn. Taille: $FILESIZE Mb"

        if [ "$MAILSIOK" = "O" ]; then
                echo -e "Backup effectué à $DATE Status: OK\nDurée du backup: $TOTALTIME minutes\nFichier: $FILENAME.gz
                transféré avec une taille de $FILESIZE Mb" | mail -s 'BACKUP FTP OVH OK' $EMAIL
        fi
fi
exit $RESULT

Hors ligne

#6 Le 11/03/2011, à 11:44

Bakuna

Re : [RESOLU]Backup FTP OVH incrémentale

Bonjour;
voilà j'ai refait un petit scripte simple pour le transfert de sauvegarde incrémentielle de mon serveur ubuntu vers un FTP
Lorsque je lance le scripte manuellement tout fonctionne sans problème mais lorsque je le lance avec Cron il y a un problème lors de la compression ^^
voilà mon script.sh

#! /bin/bash
#sauvegarde incrémentielle avec rsync
rsync -rltgoDv --del --ignore-errors --force /home/echange/ /home/SAV/samba/
rsync -rltgoDv --del --ignore-errors --force /subversion/depots/ /home/SAV/svn/

#compression du répertoire qui contient les sauvegarde samba et svn
zip -r sav.zip sav/

#config pour la connexion
srv="192.168.1.1"
rep="/usr/mes_scripts"
login= "toto"
pass= "mdptoto"

echo "début du transfert"

#connexion au FTP
ftp -ndv $srv <<-SCRIPT
user $login $pass
binary
lcd $rep
put sav.zip
ls
SCRIPT
rm -rf sav.zip
echo "Fin du transfert FTP"
exit

Et voilà le résultat que j'obtiens lors du lancement du scripte avec Cron

Sortie de la commande /usr/mes_scripts/script1.sh ..

sending incremental file list

sent 648 bytes  received 17 bytes  1330.00 bytes/sec
total size is 8846423  speedup is 13302.89
sending incremental file list

sent 1028 bytes  received 23 bytes  2102.00 bytes/sec
total size is 35031  speedup is 33.33
    zip warning: name not matched: sav/

zip error: Nothing to do! (try: zip -r sav.zip . -i sav/)
debut de transfert FTP
Connected to 192.168.1.2.
220-FileZilla Server version 0.9.37 beta
220-written by Tim Kosse (Tim.Kosse@gmx.de)
220 Please visit http://sourceforge.net/projects/filezilla/
ftp: setsockopt: Bad file descriptor
---> SYST
215 UNIX emulated by FileZilla
Remote system type is UNIX.
---> USER toto
331 Password required for toto
---> PASS XXXX
230 Logged on
---> SYST
215 UNIX emulated by FileZilla
Remote system type is UNIX.
---> TYPE I
200 Type set to I
local: sav.zip: No such file or directory
?Invalid command
Local directory now /usr/mes_scripts
local: sav.zip remote: sav.zip
---> TYPE A
200 Type set to A
---> PORT 192,168,1,1,141,101
200 Port command successful
---> LIST
150 Opening data channel for directory list.
-rw-r--r-- 1 ftp ftp        8880028 Mar 11 11:07 sav.zip
226 Transfer OK
---> QUIT
221 Goodbye
Fin du transfert FTP

Erreur de compression (les phrases en gras) alors que j'ai pas cette erreur lorsque je lance le scripte manuellement .

Hors ligne

#7 Le 14/03/2011, à 08:30

Bakuna

Re : [RESOLU]Backup FTP OVH incrémentale

Un autre erreur avec  un tar:
tar -cvzf sav.tgz sav/ à la place de zip -r sav.zip sav/

sent 1028 bytes  received 23 bytes  2102.00 bytes/sec
total size is 35031  speedup is 33.33
tar: sav: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors

Hors ligne

#8 Le 14/03/2011, à 15:59

Bakuna

Re : [RESOLU]Backup FTP OVH incrémentale

Scripte terminé est fonctionne très bien.
le script final :

#! /bin/bash

#sauvegarde incrémentielle d'un partage samba et des projets subversion(svn)  dans le répertoire sav.
rsync -rltgoDv --del --ignore-errors --force /home/echange/ /usr/mes_scripts/sav/samba/
rsync -rltgoDv --del --ignore-errors --force /subversion/depots/ /usr/mes_scripts/sav/svn/

#info de connexion et de répertoire
srv="AdresseIpServerFTP"
rep="/usr/mes_scripts"
login="toto"
pass="mdptoto"

#compression du répertoire sav qui contient les sauvegarde incrémentielle
cd $rep
tar -cvzf sav.tgz sav/

#connexion au FTP
echo "debut de transfert FTP"
ftp -ndv $srv <<-SCRIPT
user $login $pass

#Transfert des données au serveur FTP
binary
lcd $rep
put sav.tgz
ls
SCRIPT

#suppression du fichier sav.tgz
rm -rf sav.tgz
echo "Fin du transfert FTP"
exit

Finalement le zip n'a pas marché donc je me suis rabattu sur le tar.

Mais maintenant je voudrais compléter mon scripte pour qu'on m'en voit un e-mail à chaque fois que le scripte s'exécute.
Quelqu'un aurait une idée ?

Dernière modification par Bakuna (Le 14/03/2011, à 19:59)

Hors ligne

#9 Le 15/03/2011, à 10:34

Bakuna

Re : [RESOLU]Backup FTP OVH incrémentale

Il faut vérifier si :
Points + :
     -la sauvegarde incrémentielle s'est bien passé
     -La compression s'est bien passé
     -La connexion a réussi
     - Le transfert a réussi
Point - :
     -Problème de sauvegarde
     -problème de compression
     -problème de connexion
     -problème de transfert

Hors ligne

#10 Le 15/03/2011, à 12:11

benco

Re : [RESOLU]Backup FTP OVH incrémentale

AH bah, ça avance, bien wink

Pour envoyer des rapports, et bah tu créé le texte dans ton script, en rajoutant au fur et à mesure la sortie des instructions que tu exécute. Et tu envoie tout ça à la fin, avec la commande sendmail big_smile

Hors ligne

#11 Le 21/03/2011, à 10:11

Bakuna

Re : [RESOLU]Backup FTP OVH incrémentale

Et comment on fait pour récupéré la sortie des instructions ? ^^
Maitre tout les sortie dans une variable par exemple

Hors ligne

#12 Le 24/03/2011, à 16:30

Bakuna

Re : [RESOLU]Backup FTP OVH incrémentale

Scripte final qui envoi aussi un e-mail à chaque qu'il s'exécute!

#! /bin/bash

#sauvegarde incrémentielle d'un partage samba et des projets subversion (svn)  dans le répertoire doc.
rsync -rltgoDv --del --ignore-errors --force /home/echange/  /usr/mes_scripts/sav/samba/
rsync -rltgoDv --del --ignore-errors --force /subversion/depots/  /usr/mes_scripts/sav/svn

#info de connexion et de répertoire
srv="192.168.1.1"
rep="/usr/mes_scripts"
login="toto"
pass="mdptoto"
mail= "dupont@domaine.fr"

#compression du répertoire doc qui contient les sauvegardes incrémentielles
cd $rep
#création du fichier qui contiendra le résultat de la régénération du script
echo compte-rendu>compte-rendu.log

tar -cvzf sav.tgz sav/

#connexion au FTP
echo "debut de transfert FTP"
ftp -ndv $srv <<-SCRIPT>>compte-rendu.log
user $login $pass

#Transfert des données au serveur FTP
binary
lcd $rep
put sav.tgz
ls
SCRIPT

#suppression du fichier sav.tgz
rm -rf sav.tgz
echo "Fin du transfert FTP"
mail –s "Compte-rendu sauvegarde" $mail<compte-rendu.log
exit

Il faut rajouter les lignes en gras si on veut recevoir un e-mail à chaque fois que le script s'exécute .

Dernière modification par Bakuna (Le 24/03/2011, à 16:33)

Hors ligne