[resolu] ftp et dossiers

Bonjour a tous.

Existe il un moyen, via une commande ftp simple, de copier le contenu d’un repertoire local vers un serveur distant ?

lftp pourrait surement le faire, mais je ne trouve pas, après longue reflexion, de moyen de réaliser cette opération pourtant simple …

si vous avez des idées :slightly_smiling:

merci par avance.

c’est pas franchement de la programmation, ça, si ?
sinon, ftp doit suffire, en utilisant une syntaxe du type

ftp <un hote> <<EOF <tout ce que tu taperais dans une session interactive> EOF

si justement, c’est la que rentre en compte la programmation non ?

après <<EOF , le mieux est de faire surement un script qui gère tout ca.

ce qui veux dire connection / identification, accès au repertoire voulu puis …

et c’est ici que ça bloque:

la commande pour effectuer une copie de dossier n’existe pas, et le !cp -R effectue la copie sur le client, non sur le serveur …

un script pourrait plagier à ca, mais il faudrait faire a la fois les actions sur le serveur et sur le client ( cd dossier correspondrait à mkdir dossier cd dossier … et meme si c’est un peu fastidieux, je ne trouve oas le moyen d’effectuer des actions a la fois sur le serveur et sur le client de manière synchronisée…)

salut,
si c’est juste pour copier un rep vers un hôte distant avec ftp ça doit pouvoir se faire.
on se place dans le répertoire qu’on veut copier et on fait:

ftp (hôte)
Une fois connecter tapper ‘help’ ou ‘?’ pour avoir une liste des commandes.

pour envoyer un dossier c mput le_dossier

ça serait trop beau … put n’acepte que les fichiers…

ftp> ? mput
mput            send multiple files
ftp>

?

sorry c bien mput

ftp tat.com prompt mput -R *.*

je pense

y’a effectivement de l’element de réponse, mais ca ne permet que d’envoyer des fichiers multiples, et non pas des repertoires …

ca pourrait le faire dans un petit script peut etre, mais il faudrait pouvoir créer les dossiers et les parcourir en meme temps … et c’est la que je ne vois aps comment faire des commandes locale ET distantes en meme temps…

[quote=“aka”]si justement, c’est la que rentre en compte la programmation non ?
(…)[/quote]Bah non, c’est juste de la ligne de commande avancée, mais pas vraiment de la programmation.
Sinon, le
<<EOF

EOF
revient à faire un premier script (shell) qui fait
ftp <nomfichier
et un deuxiême script nomfichier (ftp celui la) qui fait ce qu’il y a à faire.
Vaut mieux tout mettre dans un seul script, non ?

Sinon, la commande mput permet de transfèrer plusieurs fichiers avec un pattern, mais je ne sais pas si elle travaille récursivement.

oui bien évidemment.

apparemment non…

et commetn vous feriez pour faire en sorte qu’elle le devienne ? j’avoue ne pas voir

Salut,

Je pense que l’utilisation de rsync serait adaptée à ton cas.
Si il y à un serveur ftp, il doit y avoir un serveur ssh?

Dans ce cas une sauvegarde d’un repértoire est possible via une connection sécurisée, avec les avantages de la sauvegarde incrémentale, pas de port supplémentaire à ouvrir non plus.

Il suffit d’installer rsync et de configurer le démon sur le serveur, et simplement d’installer le paquet rsync sur le client.

Si ssh est configuré pour ne pas avoir à taper de mot de passe, la sauvegarde peut être ajouté à la table cron.

Voila, si je dis une bétise se sera fait pour aujourd’hui :smiley: !

je m’incruste pour ssh,j’aimerais envoyer le contenu d’un dossier sur mon serveur,sans se lister les fichiers un a un,cay possible ?

personnellement, je ferais une séquence de commandes avec echo et find qui produiraient toutes les commandes ftp, les mput et mdir nécessaires au mirroring ftp complet, et j’enverrais le résultat de cette commande dans ftp.

Pour faire une copie récursive d’un répertoire ::

et si (mais c’est une autre question) il y a un service ssh, la commande scp (de syntaxe similaire à cp) permet des copies récursives: scp -r /path/du/rep/local <unuser>@<leserveurdistant>:/path/ou/recopier/a/distanceavec une autentification par clé, il n’y a pas besoin de password.

mais si on considère le ssh c’est un autre souci … cela ne fonctionne qu’avec les serveurs ayant ce service d’installé … c’est assez restrictif, dommage ( quoi que dans mon cas c’est quand meme bien pratique ^^ )

tu veux donc faireune suite de séquences qui écrivent dans un fichieret passer le-dit fichier en parametre à ftp ?

Et, dans quelle optique pense tu utiliser des find ici ? avec le parametre - exec ?

non, je redirigerais le résultat de la séquence directement dans ftp (mais je testerais avant la sortie pour voir si elle est cohérente).

Un peu du genre: ( echo <user>; echo <passwd> ; find /le/rep -type d -exec echo mdir {} \; ; find /le/rep -type f -exec echo mput {} \; ; echo quit ) | ftp <le serveur>

bon, j’ai oublié les cd pour faire les mput aux bons endroits, etc. le réel serait plus compliqué.

Sinon, autre solution boeuf: fuse et le ftpfs
coagul.org/article.php3?id_article=466

Bonjour, [size=117]Rsync[/size] biensur …

[quote=“usinagaz”]Bonjour, [size=117]Rsync[/size] biensur …[/quote]1/déjà cité
2/aka ne maitrise pas l’admin du serveur.