bonjour
j'essaye d'écrire un script pour faire un transfert ftp automatique.
le problème est que je ne peux pas savoir à l'avance combien de fichiers je vais avoir a transférer, ni leur noms.
y'a t'il un équivalent au " copy *.* " ?
merci
bonjour
j'essaye d'écrire un script pour faire un transfert ftp automatique.
le problème est que je ne peux pas savoir à l'avance combien de fichiers je vais avoir a transférer, ni leur noms.
y'a t'il un équivalent au " copy *.* " ?
merci
Il faut utiliser la commande FTP avec en paramètre, un fichier contenant les instructions FTP
pour cela on utilise l'option -s :
Code batch : Sélectionner tout - Visualiser dans une fenêtre à part ftp -s:C:\liste_commandes.txt
le fichier de commandes quant à lui contiendrait :
Attention toutefois :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 open ip_machine nom_utilisateur mot_de_passe binary prompt off cd /dossier_contenant_les_fichiers mget * bye
Ce n'est pas sécurisé de mettre le mot de passe en clair dans un fichier
Ce script n'effectuera que la copie de tous les fichiers du dossier spécifié, mais pas de façon récursive (il ne copie pas les dossiers et fichiers)
Transfert récursif : Si ce sont des fichiers de ton disque à envoyer sur le FTP, il est toujours possible de faire un batch qui va scanner le répertoire à envoyer et construire le fichier de réponse pour le FTP, et donc automatiser tout ça, ou d'utiliser "mput *".
Si c'est pour récupérer le contenu du FTP, toujours de façon récursive, c'est un peu plus difficile et il va sûrement falloir le faire en plusieurs étapes. Cela reste possible quoi qu'il en soit, même si ça va être plutôt lourd.
En lisant le message, j'avais compris qu'il fallait obtenir des fichiers à partir d'un FTP, mais il est vrai que ta demande porte à confusion quant au sens du transfert que tu veux réaliser.
je vais préciser un peu plus mais déja merci pour vos suggestions.
une machine distante génère x fichiers dans un dossier précis.
je dois récupérer ces fichiers au moins une fois par jour.
pour le moment je prend la main sur la machine et je m'envoie les fichiers.
Il y a des sous-répertoires ou pas ? Connais-tu à l'avance le nom du répertoire distant où les fichiers sont stockés ?
il n'y a pas de sous dossiers
le repertoire distant est connu
c'est une opération quotidienne
je ne connais pas la commande at
et je ne pourrais essayer qu'apres 18h pour le moment la machine est utilisée
merci encore
Alors effectivement, le script de Karzoff fonctionnera (après adaptation des logins, mdp et nom de répertoires bien entendu).
La commande "at" te permet de créer des tâches planifiées en ligne de commande, mais si tu préfères, tu peux les faire aussi via le Panneau de configuration -> Tâches planifiées.
merci a vous j'attend que la machine soit dispo et je teste ca.
cd /dossier_contenant_les_fichiers
j'ai un souci de syntaxe pour trouver mon dossier...
cd / c:\dossier1\dossier2
ca tient compte des majuscules ?
j'ai voulu tester en direct avant d'ecrire le script ca ne fonctionne pas, j'ai du rater un truc
ftp
open ip port
login
mdp
binary
200 type set to I
prompt off
mode interactif désactivé
cd \ c:\corbeilles\CD
250 CWD command succussful
mget *
200 type set to I
bye
mon dossier cible contient 2 fichiers et je n'ai rien recuperer
je seche...
Au temps pour moi, je t'ai induis en erreur avec l'exemple de mon script.
Pour les arboresences, sous les système UNIX/Linux on utilise des slash / alors que sous les systèmes Windows on utilise des antislash \
cd étant présent sous les 2 types de systèmes, il y a risque de confusion.
Dans mon exemple, avec l'habitude, j'ai mis un slash
La syntaxe de la commande cd (Change Dir) est la suivante :
cd chemin ou cd .. ou cd lecteur\chemin etc.
Essaye ainsi :
- le fichier .bat :
Code BATCH : Sélectionner tout - Visualiser dans une fenêtre à part ftp -s:C:\liste_commandes.txt- le fichier liste_commandes.txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 open ip_machine nom_utilisateur mot_de_passe binary prompt off cd c:\corbeilles\CD mget * bye
Et pour information, la case n'est pas sensitive (les majuscules/minuscules ne sont pas prises en compte)
j'ai résolu ce problème de chemin hier soir mais je suis bloqué un peu plus loin car je n'ai pas été clair dans la problématique de départ.
machine 1 (distante) répertoire cible c:\corbeilles\CD
machine 2 (local) serveur FTP, répertoire cible défini dans le paramétrage du serveur.
donc il faut que la machine 1 envoie le contenu du répertoire cible en se connectant au serveur FTP (et sera dans le bon répertoire par défaut).
le retour de fichiers ( du serveur vers la machine distante m'intéresse aussi mais il faut déjà que l'upload tourne )
j'espère être clair...
donc si je prend ca donnerait
ftp -s:C:\liste_commandes.txt
open ip port
login
mdp
binary
prompt off
sélection du dossier cible en local
send * (ca existe ?)
bye
mon souci est de ne pas savoir ou je me trouve dans l'arborescence locale
et comment pointer le dossier cible
Choix du chemin local : lcd C:\Bidule\Truc
Envoi avec jokers : mput *
Pour la liste des commandes FTP disponibles (en gras, italique, souligné les commandes à taper) :
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 C:\>ftp ftp> help Les commandes peuvent être abrégées. Ces commandes sont : ! delete literal prompt send ? debug ls put status append dir mdelete pwd trace ascii disconnect mdir quit type bell get mget quote user binary glob mkdir recv verbose bye hash mls remotehelp cd help mput rename close lcd open rmdir ftp> help lcd lcd Modifie le dossier de travail local ftp> bye C:\>
ca marche !!
me reste plus qu'a déployer sur les 38 machines distantes et après mettre en place le retour...
merci à vous deux
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager