1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| #!/bin/bash
# Download d'un répertoire sur un site FTP
HOST="serveur hébergeur"
USER="user"
PASSWORD="pass"
LOCAL="/home/backup"
REMOTE="/remote"
REMOTE1="/remote1"
LOG="lftp_log.txt"
LOG1="lftp_log1.txt"
DATE=$(date +%d-%m-%Y--%H-%M)
# Création du répertoire de backup s'il n'existe pas
if [ ! -d "$LOCAL" ]; then
mkdir -p "$LOCAL"
fi
# Download par lftp
lftp -c "set ftp:list-options -a;
set ssl:verify-certificate false;
set ftps:initial-prot;
set ftp:ssl-force true;
set ftp:ssl-protect-data true;
set ftp:ssl-protect-list true;
open -u $USER,$PASSWORD $HOST;
!mkdir -p ~/backup/$DATE;
lcd ~/backup/$DATE;
mirror -e -v --log=$LOG $REMOTE/ $LOCAL/$DATE/;
mirror -e -v --log=$LOG1 $REMOTE1/ $LOCAL/$DATE/;
quit"
# Compression du répertoire
cd ~/backup
tar cfzv ${DATE}.tar.gz ~/backup/$DATE/
# Encrypte l'archive avec AEScrypt
aescrypt -e -p pass ${DATE}.tar.gz
# Suppression des fichiers non encryptés
rm -Rf ${DATE}
rm ${DATE}.tar.gz
#Compte le nombre de fichiers et répertoires
F_CNT=0
D_CNT=0
for FILE in *; do
test -f "$FILE" && ((F_CNT++))
test -d "$FILE" && ((D_CNT++))
done
echo "$F_CNT fichiers & $D_CNT répertoires dans le répertoire courant."
# Mail de confirmation
echo "Backup du site terminé. Tout est sous controle. Il y a $F_CNT fichiers & $D_CNT répertoires dans le répertoire courant." | mail -s "Backup" mail@mail.com
echo Backup terminé
exit 0 |