Upload FTP automatico con Windows
Tips & tricks, Windows 21 Maggio 2008, 0:38
Oggi mi è capitato di dover programmare l’upload automatico di un file sotto Windows XP Professional. È stata come sempre un’esperienza molto istruttiva: in fondo, adottando gli stratagemmi più vari, si può ottenere anche da Windows qualcosa di vagamente simile al comportamento di `cron` sui server Linux. Solo vagamente, non voglio illudere nessuno. Però si può fare. Ecco come.
Supponiamo di dover spostare ogni ora una copia del file PROVA.TXT sul seguente server FTP:
host: FTP.ESEMPIO.NET
user: UTENTE
pass: QWERTY
destinazione: /MIA/CARTELLA/
Per prima cosa dobbiamo realizzare uno script batch in grado di aprire una connessione FTP, spostare il file e poi chiudere la connessione medesima.
Ecco lo script che ho realizzato e salvato nel file UPLOADME.BAT:
@echo off
echo user UTENTE> ftpcomm.dat
echo QWERTY>> ftpcomm.dat
echo bin>> ftpcomm.dat
echo cd /MIA/CARTELLA/>>ftpcmd.dat
echo put %1>> ftpcomm.dat
echo quit>> ftpcomm.dat
ftp -n -s:ftpcomm.dat FTP.ESEMPIO.NET
del ftpcomm.dat
Semplice e lineare. Da linea di comando la pubblicazione del file PROVA.TXT si ottiene semplicemente con il comando:
uploadme "C:\Documents and Settings\Ivan Agliardi\Documenti\PROVA.TXT"
Ora viene - per assurdo - la parte più complicata. Windows non è dotato di un vero sistema di cron, quindi dovremo ricorrere alle famigerate Operazioni pianificate (alias, Task Scheduler).
Cito testualmente da http://support.microsoft.com/kb/308569/it:
Per aprire Operazioni pianificate, fare clic sul pulsante Start, scegliere Tutti i programmi, Accessori, Utilità di sistema, quindi fare clic su Operazioni pianificate.
Per pianificare una nuova operazione:
| 1. | Fare doppio clic su Aggiungi operazione pianificata per avviare Pianificazione guidata operazioni, quindi fare clic su Avanti nella prima finestra di dialogo. | ||||||||||||
| 2. | Nella successiva finestra di dialogo viene visualizzato un elenco dei programmi installati nel computer come parte del sistema operativo Windows XP o come risultato di un’installazione software.
Utilizzare uno dei seguenti metodi:
|
||||||||||||
| 3. | Digitare un nome per l’operazione e selezionare una delle seguenti opzioni:
|
||||||||||||
| 4. | Fare clic su Avanti, specificare le informazioni relative all’ora e al giorno in cui eseguire l’operazione, quindi scegliere Avanti.
Le informazioni relative alla data e all’ora di esecuzione dell’operazione variano in base alla selezione effettuata nella precedente finestra di dialogo della procedura guidata. Se ad esempio è stata selezionata l’opzione Ogni settimana, è necessario indicare il giorno della settimana, l’ora e se l’operazione deve essere eseguita ogni settimana, ogni due settimane, ogni tre settimane e così via. |
||||||||||||
| 5. | Digitare il nome e la password dell’utente associato all’operazione. Verificare di selezionare un utente che disponga di autorizzazioni sufficienti per eseguire il programma. In base all’impostazione predefinita, verrà selezionato il nome dell’utente corrente che ha effettuato l’accesso. | ||||||||||||
| 6. | Fare clic su Avanti, quindi scegliere Fine dopo aver controllato le selezioni effettuate. |
Fine della citazione… Ora, il problema un po’ più serio consiste nel fatto che l’interfaccia del Task Scheduler non offre grandi possibilità di scelta per quanto riguarda la temporizzazione: se voglio eseguire lo script ogni ora devo prima creare un’operazione pianificata con una delle temporizzazioni disponibili e poi modificarla accedendo alle sue Opzioni avanzate.
Che cosa ci sia di avanzato nell’eseguire un evento ogni 7 minuti - ad esempio - anziché una volta al giorno, questo non mi è chiaro. Mi è chiaro però che le opzioni avanzate mi permettono di impostare la ripetizione automatica dell’operazione ogni n minuti, ottenendo di fatto una rudimentale forma di `cron`.















