Scrivere uno script per Upload/Download da protocollo FTP

Pubblicato: Maggio 2, 2011 in Batch, FTP, Script, Windows
Tag:, , , , ,

Torniamo a scrivere sul nostro blog dopo lunghi impegni di lavoro, in questo periodo abbiamo affrontato e superato diverse problematiche e, da oggi e nei giorni a seguire, vorremmo mettere la nostra esperienza a disposizione dei nostri lettori. In questo articolo forniremo alcune nozioni sulla copia e sul download di file da spazio FTP tramite script per sistemi operativi Windows.

Entrare in uno spazio FTP da sistema operativo Windows è di una semplicità estrema, basta infatti digitare il comando FTP dal prompt dei comandi per vederci catapultati nel nostro spazio web come in figura:

Una foto che visualizza il propt dei comandi con l'accesso allo spazio FTP

Nella tabella (in inglese) possiamo vedere i comandi eseguibili nello spazio FTP sono i seguenti:

FTP commands
Command Description
!   escape to the shell
?   print local help information
append   append to a file
ascii   set ascii transfer type
bell   beep when command completed
binary   set binary transfer type
bye   terminate ftp session and exit
cd   change remote working directory
close   terminate ftp session
debug   toggle debugging mode
delete   delete remote file
dir   list contents of remote directory
disconnect   terminate ftp session
get   receive file
glob   toggle metacharacter expansion of local file names
hash   toggle printing `#’ for each buffer transferred
help   print local help information
lcd   change local working directory
literal   send arbitrary ftp command
ls   nlist contents of remote directory
mdelete   delete multiple files
mdir   list contents of multiple remote directories
mget   get multiple files
mkdir   make directory on the remote machine
mls   nlist contents of multiple remote directories
mput   send multiple files
open   connect to remote tftp
prompt   force interactive prompting on multiple commands
put   send one file
pwd   print working directory on remote machine
quit   terminate ftp session and exit
quote   send arbitrary ftp command
recv   receive file
remotehelp   get help from remote server
rename   rename file
rmdir   remove directory on the remote machine
send   send one file
status   show current status
trace   toggle packet tracing
type   set file transfer type
user   send new user information
verbose   toggle verbose mode

La cosa che più ci può essere utile in questa situazione, non è tanto però, l’utilizzo della shell (che sarebbe comunque richiamabile soltanto in locale), quanto la creazione di uno script che potrebbe automatizzarci il lavoro. Un esempio di script per la copia FTP potrebbe essere il seguente:

MyUserId
MyPassword
cd files/pictures
binary
prompt n
mget *.*

Salvate questo script con il nome script.ftp  (la cui funzionalità è quella di copiare tutti i file presenti nella cartella pictures) e, per utilizzarlo, basta lanciare da riga comando la seguente istruzione:
FTP -s:script.ftp ftp.myhost.net
sostituendo i valori di MyUser, MyPassword e MyHost.net con quelli che vi interessano avrete un facile script per l’invio/ricezione dei dati. Attenzione però, essendo le password in chiaro, riteniamo che sia best practice quella di creare “on the fly” il file script e, dopo averlo, eseguito rimuoverlo.

Lascia un commento