PDA

Visualizza la versione completa : Copia file automatica su server remoto


prondee
27-11-2008, 12:58
Ciao a tutti,
nella ditta dove lavoro abbiamo bisogno di copiare un insieme di file dal nostro server in un altro server remoto (entrambi con OS Windows). Attualmente questa procedura viene svolta a mano utilizzando il sito ftp del server remoto.
Esiste un modo semplice per automatizzare questa cosa?
Se si, come mi consigliate di fare?
:ciauz:

LeleFT
27-11-2008, 14:01
Un batch che sfrutti l'attuale sistema di trasferimento via FTP.


Ciao. :ciauz:

prondee
27-11-2008, 15:41
Originariamente inviato da LeleFT
Un batch che sfrutti l'attuale sistema di trasferimento via FTP.


Ciao. :ciauz:
Quindi, basta fare un semplice:
xcopy <file locali> <ftp://ind-server/destinazione>
Ho capito bene?

LeleFT
27-11-2008, 16:08
No.

Dovresti per prima cosa creare un file contenente tutte le istruzioni FTP da eseguire, compresi i comandi per l'eventuale login, quindi creare un file BAT che sfrutti questo file per eseguire i comandi.

Vediamo un esempio.

Supponiamo che il server a cui si accede via FTP sia "mioserver.dominio.com" (o semplicemente l'indirizzo IP del server).
Per l'accesso supponiamo siano richiesti questi nome utente e password:
Utente: pippo
Password: pluto
Che ci siano i seguenti file da copiare:
file1.txt
file2.txt
file3.txt

E che siano da copiare nella directory remota chiamata "dest".

Dovrai costruire prima un file, che chiamo "comandi.cmd":


pippo
pluto
binary
cd dest
put file1.txt file1.txt
put file2.txt file2.txt
put file3.txt file3.txt
close

Quindi, dovrai scrivere un file BAT che si occupi di stabilire la connessione e utilizzi i comandi presenti nel file creato prima:


@echo off
ftp -s:comandi.cmd mioserver.dominio.com


Descrivo in breve cosa fa il file dei comandi:
La prima riga comunica il nome utente al server FTP
La seconda riga comunica la password
La terza riga imposta la copia binaria
La quarta riga si posiziona nella directory di destinazione (sul server)
Le altre servono a copiare i file.


Ciao. :ciauz:

prondee
27-11-2008, 16:26
Sei veramente un grande LeleFT, e' raro trovare utenti cosi' disponibili e precisi.
Grazie mille per l'aiuto.
:ciauz:

pip19
12-07-2011, 11:04
scusate se riapro questo post sepolto ormai da anni!!!

il seguente codice funziona e funziona bene finalmente!!
dopo ore che cercavo in rete...

fatto è che cmq il file viene creato sul server, ma nessun dato viene trasferito!!!!
mette effettivament eil file dal mio pc sul server ftp, ma il file, resta di dimensione 0!!

aiutino??

LeleFT
12-07-2011, 12:03
A parte che avresti dovuto aprire una nuova discussione, eventualmente linkando questa come riferimento (è una discussione del 2008, quindi decisamente morta e sepolta), comunque un problema simile, a naso, mi dà da pensare che il file che cerchi di trasferire non sia "leggibile": ovvero, che tu non abbia i diritti di lettura su quel file.

Altre motivazioni, al momento, non me ne vengono in mente, visto che tutto il lavoro lo deve fare il client FTP...


Ciao. :ciauz:

MItaly
12-07-2011, 12:14
Originariamente inviato da LeleFT
A parte che avresti dovuto aprire una nuova discussione, eventualmente linkando questa come riferimento (è una discussione del 2008, quindi decisamente morta e sepolta), comunque un problema simile, a naso, mi dà da pensare che il file che cerchi di trasferire non sia "leggibile": ovvero, che tu non abbia i diritti di lettura su quel file.

Altre motivazioni, al momento, non me ne vengono in mente, visto che tutto il lavoro lo deve fare il client FTP...


Ciao. :ciauz:
Una possibilità che mi viene in mente è che tra client e server ci sia un NAT, per cui l'ftp attivo non funziona: il server riceve il comando di creazione file, lo inizia a creare vuoto e tenta di aprire la connessione dati verso il client, che però è dietro il NAT e non la può ricevere.
Se il problema è questo, dovrebbe essere sufficiente attivare la modalità ftp passiva; il comando credo che sia PASV.

pip19
12-07-2011, 12:21
usr
pwd
cd dest
pasv
binary
put news.txt news.txt
quit

quindi basta aggiungere PASV? va bene li???

o lo devo mettere quando apro la connessione??

@echo off
ftp -s:comandi.txt server.ftp.com

MItaly
12-07-2011, 16:35
Hmmm, ho controllato e pare che il client FTP standard incluso in Windows non supporti la modalità passiva, dovrai usare qualcos'altro.

Loading