Objectif, envoyer sur un ftp les sauvegardes du jour.
J’ai fait une boucle, mais j’ai l’impression qu’il doit y avoir plus simple… ?
Le ftp se déconnecte et se reconnecte à chaque fichier, ça me semble un peu… trop…
Déplacer la boucle à l’intérieur de la commande FTP, peut-être ? Et accessoirement, t’as pas besoin du fichier temporaire.
Vu que c’est du bash tu peux faire quelque chose dans ce goût là (non testé… pour tester tu peux remplacer le ftp -in par un cat) :
La clé, c’est la syntaxe <(…) qui fonctionne exactement comme $(…) à une différence près : la sortie des commandes “…” est redirigée vers l’entrée standard de la même manière qu’une redirection <fichier redirige le contenu du fichier vers l’entrée standard.
edit : je n’ai pas testé en ftp mais ça marche en sftp… d’ailleurs, si tu veux changer de procotole, tu as simplement à changer ftp par sftp et c’est good.
J’ai du faire un mixte de lftp et ftp.
J’ai besoin de renommer/déplacer un répertoire, je n’ai pas trouvé avec lftp.
J’ai un souci avec ftp qui n’efface que 3 fichiers sur un delete *
Du coup j’efface avec lftp et je déplace avec ftp…
Le principal est que j’arrive à mon objectif.
@Michel: j’avais utilisé ton script pendant un moment.
Mais c’est du Perl, impossible pour moi de bidouiller dedans ou de l’inclure dans mon script bash… Je n’ai pas les connaissances suffisantes.
Tu as la commande mkdir qui te permettra de créer ton dossier jour-1. Il te faudra ensuite déplacer tes fichiers.
Si le dossier jour-1 existe déjà (ce dont je ne pense pas car sinon tu ne ferais pas un rename), il y a la commande rmdir pour le supprimer.
Avec lftp je vide et supprime jour-1 (mrm rmdir)
avec ftp je déplace jour en jour-1 recrée jour et fait ma sauvegarde. (rename mkdir put)
J’aurais préféré faire tout avec une seule commande, mais le delete * ou le mdelete * de ftp ne fonctionne pas bien pour je ne sais quelle sombre raison. Il efface trois fichiers et s’arrête.
Tout ce ci est loin d’être parfait, mais j’ai quand même la satisfaction d’obtenir ce que je veux…
[quote=“Totor”]Normalement, tu dois pouvoir tout faire avec lftp. d’autant plus que tu peux préciser le dossier de destination avec mput (option -O).
Mais si tu n’y arrives pas, je te conseille plutôt de réaliser ces traitements sur les fichiers/dossiers en ssh que de fais ça en ftp.[/quote]
Salut,
“Malheureusement” (enfin… ça va quand même) OVH m’offre un ftp gratuit (100Go). Donc c’est cool pour un backup…
Comme ce n’est pas accessible depuis l’extérieur, c’est plutôt sécurisé.
J’ai mis en place un autre backup sur un serveur aux états unis, celui-là se fait avec scp + clef, c’est d’ailleurs plus simple que le ftp…
J’ai mis en place les crons, plus qu’a attendre une semaine de voir si mes scripts tiennent la route…
J’ai épluché le man de lftp et je n’ai pas trouvé (seulement comment déplacer des fichiers): mv
lftp est surtout très axé “mirror”…
(( ${#FICHIERS[@]} > 0 )) && ftp -in <<EOF
open ${FTP_HOST}
user ${FTP_USER} ${FTP_PASS}
bin
verbose
prompt
$(printf “put %s\n” “${FICHIERS[@]}”)
bye
EOF
exit
[/code][/quote]
Je n’arrive pas à envoyer des infos dans les logs à partir de “l’intérieur” de la boucle ftp… (entre $(printf… et bye)
Quelqu’un à une idée de la façon de procéder ?
[quote=“lol”]
Malheureusement ça ne fonctionne pas pour les répertoires.
Alors qu’avec ftp un simple:
Fonctionne.[/quote]Je ne comprend pas car je viens de tester lftp et ca fonctionne.
mv pdf lib/ me déplace le dossier pdf dans lib/
mv pdf pdf2 me renomme pdf en pdf2
Je vais peut être relire le fil car il y a un truc que je n’ai pas compris.
[quote=“limax”][quote=“lol”]Salut,
mv mv deux fois, c’est normal ? Pas de slash au dossier /pdf dans la commande ?[/quote]
C’est parce que je bégaye.
Si le problème est réglé tant mieux.[/quote]
Je me suis fait avoir aussi avec prompt. Il m’a fallut du temps pour percuter…
Il (le mode interactif) est désactivé par défaut, et je le réactivais à chaque fois… Résultat les “delete” et autres opérations en masse avortaient…