Batchs FTP




  1. Présentation

Un fichier de paramètres est un fichier texte permettant de se connecter à un serveur FTP sans avoir à retaper toujours le mot de passe et l'identifiant. L'intérêt majeur est de pouvoir ainsi programmer la récupération d'un fichier à heure précise, ou encore l'envoi d'un fichier sur demande.
Nous allons donc voir les 2 possibilités principales : sous Windows et sous Unix.



  2. Windows

D'abord, nous allons voir un exemple de script de connexion, puis ensuite, nous verrons comment l'utiliser.
Script de connexion :
open [Site_FTP]
[login]
[mot_de_passe]
cd [Repertoire_distant]
lcd [Repertoire_local]
put [Nom_du_fichier]
bye

Ceci est un exemple de présentation d'un tel script. On constate qu'en réalité, les commandes sont simplement écrites les unes à la suite des autres, et que le login et le mot de passe sont simplement écrits.

Si l'on souhaite, par exemple, copie sur un FTP à l'adresse ftpperso.free.fr, avec comme login "monlogin", comme mot de passe "password", dans le répertoire distant (c'est à dire sur le serveur) "/download/", depuis le répertoire "c:\site\download\", le fichier "monprog.zip", on obtient le script suivant :
open ftpperso.free.fr
monlogin
password
cd /download/
lcd "c:\site\download\"
put monprog.zip
bye


Pour pouvoir utiliser ce script, il faut le passer en paramètre lors du lancement du FTP.
Pour se faire, c'est très simple, si le fichier que vous venez de créer s'appelle "envoimonprog.ftp" (le nom est totalement libre, vous pouvez lui donner l'extension que vous voulez), il vous suffit de taper :
ftp -s:envoimonprog.ftp


Une petite astuce serait d'associer les fichiers '.ftp' à la commande 'ftp.exe -s:"%1"' dans les associations de fichiers. Ainsi, tous les fichiers avec l'extension '.ftp' seront directement traités.



  3. Unix


Vous avez 2 principales possibilités :
  • un script qui fait tout
  • un fichier qui contient les informations, et une ligne de commandes pour lancer le script
Personnellement, je trouve la seconde solution plus "jolie", mais le côté pratique de la première peut se faire parfois sentir...



  3. 1. Script qui fait tout

Créer un fichier avec le contenu suivant :
#!/bin/ksh
FTPHOST='ftp.netscape.com'
FTPLOGIN='anonymous'
FTPPASSWD='adresse@email.com'
ftp -inv $FTPHOST <<END_SCRIPT
quote USER $FTPLOGIN
quote PASS $FTPPASSWD
ls
cd pub
ls
bye
END_SCRIPT
exit 0
Il vous suffit alors de mettre les droits en execution (chmod +x) à ce fichier et de l'executer pour obtenir le listing du contenu des 2 répertoires sur le site de Netscape.


  3. 2. Script + Commande

Créer un fichier avec le contenu suivant :
open ftp.netscape.com
user anonymous adresse@email.com
ls
cd pub
ls
bye
En supposant que vous avez appele votre fichier "ftpNetscape", voici la commande à taper pour l'executer :
cat ftpNetscape | ftp -n





Page modifiée le : 02/10/2024


Valid XHTML 1.0 Transitional