Bonjour à tous,
Je souhaiterais écrire un script qui se lancer toutes les semaine afin de créer une archive de divers répertoires.
Pour ce faire, j'ai 2 tables en BDD de paramétrage du script, qui convertit en shell donne ces 2 tableaux :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
FOLDERS=(
  "/usr/local/web"
  "/usr/local/Documents/NAS"
  "/usr/local/Documents/PI"
  "/usr/local/Restauration/Sauvegarde"
)
EXCEPTED=(
  "/usr/local/web/download"
  "/usr/local/Restauration/Sauvegarde/NAS"
  "/usr/local/Restauration/Sauvegarde/PI"
  "/usr/local/Restauration/Sauvegarde/PC Bureau"
)
En gros le premier tableau récupère la liste des répertoires à zipper.
Le deuxième la liste des sous répertoires à ne pas intégrer au zip global.
Je veux que mon zip global contienne 4 répertoires (en fonction du nombre de FOLDERS) comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
monzip.zip
- web
  - ...
- NAS
  - ...
- PI
  - ...
- Sauvegarde
  - ...
Du coup j'ai voulu essayer de générer la commande "à la volée" avec 7zip mais ça ne fonctionne pas.
La solution la plus simple serait de copier/coller des répertoires et de zipper le contenu mais si les fichiers sont gros, ça va prendre + de temps et user les disques pour rien.
Voici le début du script..

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
for FOLD in ${FOLDERS[*]}
do
  FD="${FD} \"${FOLD}\""
done
 
for EXCEPT in ${EXCEPTED[*]}
do
  EX="${EX} -x\!\"${EXCEPT}\""
done
 
7z a t.7z `echo $FD` `echo $EX`
ça ne marche pas car je pense que les variables ne sont pas bien interprétées...
merci pour votre aide,