Bonjour à tous,

Je suis novice en shell.
J'ai créé un script qui fait un backup de mon site hébergé vers mon poste local.
J'utilise lftp pour la copie. J'y ai inclus une encryption de mon répertoire downloadé.
Donc j'aimerais que les spécialistes du shell regardent mon code et le commentent. Qu'ils me disent ce qui ne va pas ou comment l'améliorer pour le rendre plus fiable, léger. Peut-être il manque des choses auxquelles je n'ai pas pensé.
Bref savoir si on peut l'améliorer, le peaufiner, le rendre parfait.

Un grand Merci pour votre aide.

Voici le script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#!/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;
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
cd ~/backup/$DATE
F_CNT=0
D_CNT=0
for FILE in *; do
  test -f "$FILE" && F_CNT=`expr $F_CNT + 1`
  test -d "$FILE" && D_CNT=`expr $D_CNT + 1`
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