Script envoyer dossier via ftp à un serveur backup

Fermé
iTeush Messages postés 1 Date d'inscription lundi 8 septembre 2014 Statut Membre Dernière intervention 8 septembre 2014 - Modifié par jipicy le 8/09/2014 à 07:33
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 8 sept. 2014 à 07:46
Bonjour,

J'utilise actuellement un script de backup depuis un serveur soyoustart pour envoyer un répertoire sur un serveur de backup. Le problème étant que les backups ne sont pas correctement envoyées et les backups locales ne sont pas supprimées. Sauriez-vous d'où pourrait venir le bug svp ? Voici mon script:

#!/bin/bash
# Auteur :      Nono @ xxxx.net
# Date :        06/02/2012
# Version :     1.0
# MaJ :         16/02/2012
 
#############
# Variables #
#############
 
# Une date est généré, pour avoir la date de début de processus de backup
date_start='date +'%d/%m/%Y @ %H:%M:%S'';
 
# Choix du format de la date utilisé pour les dossiers
format_date='%d%m%Y'
 
# Variable de date du jour, en fonction du format choisi
date='date +${format_date}';
 
# Le nombre de jour que vous souhaitez archiver
keepday="6";
 
# Calcul du nombre de jour, remontant à plus de "$keepday" jour(s)
keepdate='date --date "-${keepday} days" +${format_date}';
 
# Le répertoire de création du backup journalier
backup_dir='/home/archives/'${date};
 
# Le chemin du rapport (celui-ci sera gardé, et envoyé par mail)
rapport='/home/archives/rapport.log';
 
# Le mot de passe iTeush de la base de donnée
sql_password='*remplacé*';
 
# L'ip ou le hostname de votre serveur FTP
ftp_host='*remplacé*';
 
# L'utilisateur de votre serveur FTP
ftp_user='*remplacé*';
 
# Le mot de passe de votre serveur FTP
ftp_pass='*remplacé*';
 
# L'adresse mail qui recevra le rapport
mail='*remplacé*@outlook.com';
 
##########
# Script #
##########
 
# Création du repertoire de backup + Initialisation du rapport
mkdir -p ${backup_dir};
echo 'Rapport du '${date_start} > {rapport};
echo " " >> ${rapport};
 
# Les répertoires + exclusions des dossiers à archiver ...
# (à modifier à la main ... On peut pas tout avoir dans la vie)
# Syntaxe :
#     tar jcf le_nom_de_larchive.tar.bz2 --exclude='/le/repertoire/a/exclure' --exclude='/eventuellement/le/deuxieme/repertoire/a/exclure' /le/dossier/a/archiver/ 2>/dev/null
tar jcf ${backup_dir}/backup-${date}-home-minecraft.tar.bz2 --exclude='*.zip'  /home/minecraft/ 2>/dev/null
tar jcf ${backup_dir}/backup-${date}-home-wordpress.tar.bz2 /home/wordpress/ 2>/dev/null
tar jcf ${backup_dir}/backup-${date}-home-ts3.tar.bz2 /home/ts3/ 2>/dev/null
tar jcf ${backup_dir}/backup-${date}-var-lib-mysql.tar.bz2 /var/lib/mysql/ 2>/dev/null
tar jcf ${backup_dir}/backup.net-${date}-etc.tar.bz2 /etc 2>/dev/null
 
#Création du dump de la base de donnée avec mysqldump
mysqldump -u iTeush --password=${sql_password} --all-databases | gzip -9 > ${backup_dir}/dump_${date}.sql.gz;
echo "Etat du dossier local :" >> ${rapport};
ls -lh ${backup_dir} -I rapport* >> ${rapport};
echo " " >> ${rapport};
 
# Envoie du dossier de sauvegarde vers le FTP
echo "Etat du dossier distant :" >> ${rapport};
lftp [ftp://]${ftp_user}:${ftp_pass}@${ftp_host} -e "mirror -R ${backup_dir} /${date} ; ls ${date} ; quit" >> ${rapport};
echo " " >> ${rapport};
 
# Suppresion du dossier en local
echo "Suppression du dossier local : ${backup_dir}" >> ${rapport};
rm -rf ${backup_dir};
echo " " >> ${rapport};
 
# Suppression du dossier distant de plus de "$keepday" jour(s)
echo "Suppression du dossier distant de plus de ${keepday} jours : ${keepdate}" >> ${rapport};
echo " " >> ${rapport};
 
# Copie de l'état des dossiers sur le FTP pour le rapport
echo "Etat du FTP :" >> ${rapport};

lftp [ftp://]${ftp_user}:${ftp_pass}@${ftp_host} -e "rm -rf ${keepdate} ;ls ; quit" >> ${rapport};
 
# Une date est généré, pour avoir la date de fin de processus de backup
date_end='date +'%d/%m/%Y @ %H:%M:%S'';
echo " " >> ${rapport};
 
#Finalisation du rapport + envoie par mail
echo 'Fini le '${date_end} >> ${rapport};



Merci d'avance :)
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 411
8 sept. 2014 à 07:46
Salut,

lftp [ftp://]${ftp_user}:${ftp_pass}@${ftp_host}
En enlevant les crochets autour de
ftp://
sûrement que ça changerait beaucoup de choses ;-\
0