Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Passer une commande UNIX en environnement FTP dans un script?
Envoyé par: Theartemis

Bonjour,

J'ai réalisé un script qui fait dump d'une base SQL pour ensuite la placer sur un FTP, le script est fonctionnel mais sur le ftp, j'aimerai supprimer tous les dumps antérieurs à 5 jours par rapport à la date actuelle.

La commande find avec le paramètre mtime m'a l'air tout à fait appropriée, mais elle n'est pas prise en compte pendant la connexion au ftp.

Voila le script

#!/bin/sh
# Script de sauvegarde des bases sql
# Auteur : Laurent ********** pour ***** ***
# Ce script fait un dump de la base MySQL, archive le fichier et le place sur un ftp

# Suppression de la sauvegarde précédente
touch /home/sys/savDBtruc_ # Création d'un leurre au cas où il n'y aurait pas de dumps
rm /home/sys/savDBtruc_*

# Déclaration variable date pour nommage du fichier
date=`date +'%d/%m/%Y'`
now=`date -I`

# Dump de la base
mysqldump -u root -p******** trucbdd > /home/sys/savDBtruc_$now.sql

# Création de l'archive
tar -czf /home/sys/savDBtruc_$now.tar.gz /home/sys/savDBtruc_$now.sql

cd /home/sys
# Connexion au FTP
yafc backupsql:********@ftp.*********.com <<**

cd /sql_backup/

# Suppression des backups antérieurs à 5 jours
find . -name "savDBtruc*" -mtime +5 -delete 

put -r savDBtruc_$now.tar.gz

cd ..

bye
**

Auriez vous une solution ou un conseil à me donner pour contourner ce problème?

Merci d'avance.

Poste le Thursday 8 April 2010 09:13:05
Répondre     Citer    
Re: Passer une commande UNIX en environnement FTP dans un script?
Envoyé par: BlueIcefield

Bonsoir,

A ma connaissance, il est impossible d'appeler une commande shell via FTP. Je te suggère donc deux alternatives :

1/ Utiliser le protocole SSH plutôt que le FTP.
2/ Exploiter la commande mdelete qui permet d'effacer plusieurs fichiers :
mdelete *_${date[0]}.sql
mdelete *_${date[1]}.sql
mdelete *_${date[2]}.sql
mdelete *_${date[3]}.sql
mdelete *_${date[4]}.sql

Où 'date' est un tableau en bash contenant les dates des cinq jours précédents que tu auras calculés dans ton script avant de lancer la connexion FTP.

J'espère t'avoir aidé un peu. Bonne continuation.

Poste le Tuesday 18 May 2010 21:32:12
Répondre     Citer    
Re: Passer une commande UNIX en environnement FTP dans un script?
Envoyé par: Xavier33

Bonjour,

Il est possible de lancer un script dans un FTP, du moins avec proftpd et le mod_exec actif. Cela fonctionne un peux comme les Hooks de svn il y a plusieurs directions comme ExecOnConnect, ExecLog, ExecOnError, ExecOnExit. Dans ton cas un ExecOnExit peut être utile pour appeler un script qui vérifier la date et supprime. Moi je l'utilise pour déplacer mes dumps par sécurité.

J'espère avoir répondu un peu à ta question.

Cordialement, XavierG.

Poste le Saturday 24 July 2010 13:03:42
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Passer une commande UNIX en environnement FTP dans un script?
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons