Bonjour à tous,
Je débute un peu en bash même si je connais quelques commandes linux.
Je cherche à faire quelque chose d'à priori très simple mais je butte sur plusieurs points.
Il s'agit d'un script qui sera appelé via un cron
Ce que je cherche à faire :
Mes questions :
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 #!/bin/bash date="$(date +%F)" ftp_host=xx.xx.xx.xx ftp_user=xxxxx ftp_pass=xxxxx local_folder=/volume1/Sauvegardes email_notif=mon@adresse.com purge_days=8 # On se place dans le folder local de destination cd $local_folder # On se connecte au ftp distant # On liste les fichiers backup-xxxx.tar.gz à la racine # On boucle sur les résultats # On télécharge le fichier et on le place dans le dossier $local_folder # On le supprime du ftp distant # On ferme la connexion ftp # On supprime les fichiers backup-xxx.tar.gz plus vieux de $purge_days du dossier $local_folder # On envoie un email de notification à $email_notif avec le log des opérations
1. Comment lister les fichiers ftp racine et ne garder que les .tar.gz ?
2. Ensuite si je boucle sur chaque fichier trouvé, je dois le récupérer en ftp ou en wget ?
Car je lis que c'est beaucoup plus rapide avec wget qu'avec ftp.
En plus si je ne me trompe pas je peux récupérer que les fichiers qui m’intéresse (mes backup en tar.gz) via .
Mais je dois me reconnecter avec les id via wget... là je suis perdu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 wget -b -A.tar.gz ftp://$ftp_user:$ftp_pass@$ftp_host
3. Auriez-vous un modèle propre de ce genre de loop for pour que je puisse supprimer "sereinement" les fichiers distants si et seulement si ils ont été correctement backupé en local.
4. Si quelqu'un a un lien à me communiquer où je puisse trouver ce genre de script et l'adapter à mes besoins je suis preneur car je n'ai pas pour vocation à développer du bash tous les jours ;-)
Merci pour votre aide
Partager