PDA

Afficher la version complète : [Réglé] ftp > aide pour script pour supprimer des archives datant de x jours situé sur un ftp



tocri
25/07/2013, 18h26
Bonjour à tous,
Je fais appel à vos compétences, car je viens de planter totalement mon site de mon serveur dédié à cause d'un script mal foutu.

Je réalise des sauvegardes du site avec Webmin sur un le serveur de backup d'ovh qui propose 100 go de dispo.

Comme chacune de mes sauvegardes fait 11 go, vous comprenez qu'il est vite saturé.

Je cherche donc un script qui permette de supprimer sur un serveur ftp les archives ayant plus de n jours.

J'ai donc voulu créer un script qui se connecte au ftp et qui lance la commande find /repertoire -mtime +60 -exec rm -r {} \;

Donc mon script démarre bien, je me connecte au serveur ftp, mais rien ne supprime.

Je fais un quit et là catastrophe...adieu mon joli opensuse...le répertoire entre autres /usr/bin vient d'être vidé

Du coup, je me suis dis qu'il était préférable d'abandonner le scripting à 2 balles et de faire appel à des personnes compétentes et c'est ce que je fais.

Pourriez-vous m'aider à constituer un script qui m'efface des archives datant de x jours situés sur un serveur FTP ?

Après, je vais me débrouiller avec webmin pour le démarrer avec cron.

Cordialement anthony

jluce
26/07/2013, 11h08
slt

tiens moi je fais des rotations sur 7 jours avec ca:

# Definition des differents dossiers et fichiers a sauvegarder
etc=/etc/httpd # dossier http config
var=/var/log/sms # dossier logs sms
www1=/srv/www/htdocs

# Definition des variables de creation de nom
dte=`date +%d%m%y` # date sous la forme jjmmaa
idt=`date +%w` # numero du jour dans la semaine
nom="/usr/dvp/tmp/sms_backup_"$dte".j"$idt".tar.gz" # nom du fichier de backup
nm="sms_backup_"$dte".j"$idt".tar.gz"

# Creation du backup
nice -n 19 tar zcvf $nom $etc $www1 $var

# livraison des sauvegardes sur sms1
scp $nom sms1:/root/backup/

# Connexion au FTP
cd /usr/dvp/tmp
ftp -i filer <<EOF
cd SMS
mdelete *$idt.tar.gz
bin
put $nm
EOF
rm /usr/dvp/tmp/*


tout en sachant que pour qu'il s'authentifie en ftp il te faut un fichier .netrc dans le home du user qui le lances contenant la machine et login/pass:


machine nomdelamachine login loginuser password passuser

voili voilou

a+

Burn2
27/07/2013, 16h50
Bonjour à tous,
Je fais appel à vos compétences, car je viens de planter totalement mon site de mon serveur dédié à cause d'un script mal foutu.

Je réalise des sauvegardes du site avec Webmin sur un le serveur de backup d'ovh qui propose 100 go de dispo.

Comme chacune de mes sauvegardes fait 11 go, vous comprenez qu'il est vite saturé.

Je cherche donc un script qui permette de supprimer sur un serveur ftp les archives ayant plus de n jours.

J'ai donc voulu créer un script qui se connecte au ftp et qui lance la commande find /repertoire -mtime +60 -exec rm -r {} \;

Donc mon script démarre bien, je me connecte au serveur ftp, mais rien ne supprime.

Je fais un quit et là catastrophe...adieu mon joli opensuse...le répertoire entre autres /usr/bin vient d'être vidé

Du coup, je me suis dis qu'il était préférable d'abandonner le scripting à 2 balles et de faire appel à des personnes compétentes et c'est ce que je fais.

Pourriez-vous m'aider à constituer un script qui m'efface des archives datant de x jours situés sur un serveur FTP ?

Après, je vais me débrouiller avec webmin pour le démarrer avec cron.

Cordialement anthony
Bonjour, ou là juste pour rappel!

Un serveur ftp, c'est un serveur ftp hein! pas un terminal de commande!
Sur un serveur ftp, on fait des get, des put des renames etc! Mais pas des commandes bash!! Certains sont plus développés que d'autres et permettent des actions plus poussées, mais il faut rester dans le protocole! ça ne te viendrait pas à l'idée de faire un rm une fois connecté à un serveur mail, ben là c'est pareil. :D