PDA

View Full Version : Login FTP Automatico (Da linux > Windows) uso di .netrc


mirrorx
21-09-2011, 14:00
Ciao a tutti, sto cercando di automatizzare il login (in FTP) di una macchina linux verso un server ftp windows.

Per fare questo ho letto dell'uso del file .netrc

Non ho capito se il file va salvato sul server FTP (windows) o nel client che esegue lo script (unix/FreeBSD).

Inoltre a parte l'estensione .netrc non ho capito che nome devo dare al file.

Nel file ho creato una riga così:

machine [machine] login [login] password [passwd]

DigitalKiller
21-09-2011, 23:04
Ciao a tutti, sto cercando di automatizzare il login (in FTP) di una macchina linux verso un server ftp windows.

Per fare questo ho letto dell'uso del file .netrc

Non ho capito se il file va salvato sul server FTP (windows) o nel client che esegue lo script (unix/FreeBSD).

Inoltre a parte l'estensione .netrc non ho capito che nome devo dare al file.

Nel file ho creato una riga così:

machine [machine] login [login] password [passwd]

Il file .netrc va creato nella home dell'utente che esegue lo script, quindi sul client linux e non sul server!
Riguardo al nome con cui il file va salvato, è appunto .netrc (non è l'estensione).
Sui sistemi linux, il punto posto prima del nome del file, sta ad indicare che si tratta di un file nascosto.
Aggiungo un'altra cosa:D Ricordati di cambiare gli attributi del file con il comando chmod 600 .netrc altrimenti non funzionerà mai:muro:

mirrorx
28-09-2011, 09:21
Ciao, scusa ma ho letto solo ora che mi avevi risposto :)

Ho ancora un dubbio. I comandi ftp che devo eseguire devono essere per forza nel file .netrc o posso lasciarli nello script (lasciando solo le credenziali in pasto al .netrc) ?

mirrorx
29-09-2011, 09:30
Ho risolto.
Solo non so sotto quale utente inserire il file .netrc.

Mi spiego: lo script lo devo automatizzare con crontab quindi mi chiedo con che utente mi conviene eseguirlo...

mirrorx
29-09-2011, 11:04
Allora riesco a fare il login ma mi si blocca al comando mput.

Questo è lo script:

echo "Inizio trasferimento FTP"
cd /tmp/elaboralog/
ftp 192.168.27.147 2100 > /tmp/elaboralog/ftp_log_fase2

La cartella "elaboralog" è quella dove si trova il file a prefisso variabile "-file.txt" da uploadare sul server ftp.


Questo è il file netrc che ho usato:

machine 192.168.27.147
login utente
password 12345
macdef backup
binary
prompt
mput *-file.txt
quit

mirrorx
29-09-2011, 22:02
Nessun idea?:(

DigitalKiller
30-09-2011, 08:13
Ho risolto.
Solo non so sotto quale utente inserire il file .netrc.

Mi spiego: lo script lo devo automatizzare con crontab quindi mi chiedo con che utente mi conviene eseguirlo...

Come ti ho detto nella prima risposta, il file .netrc dev'essere posto nella home dell'utente che esegue lo script.
Detto questo, se lo script viene "cronizzato" a livello utente dovrai mettere il file nella home dell'utente utente; se, invece, viene "cronizzato" a livello root il file andrà nella home di root

Allora riesco a fare il login ma mi si blocca al comando mput.

Questo è lo script:

echo "Inizio trasferimento FTP"
cd /tmp/elaboralog/
ftp 192.168.27.147 2100 > /tmp/elaboralog/ftp_log_fase2

La cartella "elaboralog" è quella dove si trova il file a prefisso variabile "-file.txt" da uploadare sul server ftp.


Questo è il file netrc che ho usato:

machine 192.168.27.147
login utente
password 12345
macdef backup
binary
prompt
mput *-file.txt
quit

Ora non ho modo di fare delle prove, ma se non ricordo male, nel caso di upload/download di file multipli, il comando ftp ad ogni operazione chiede una conferma. Per evitare questa conferma, devi cambiare il comando inq questo modo
ftp -i 192.168.27.147 2100 > /tmp/elaboralog/ftp_log_fase2

Controlla, comunque, il man di ftp per una conferma ;)

Ciao :)

mirrorx
30-09-2011, 09:13
Ora non ho modo di fare delle prove, ma se non ricordo male, nel caso di upload/download di file multipli, il comando ftp ad ogni operazione chiede una conferma. Per evitare questa conferma, devi cambiare il comando inq questo modo
ftp -i 192.168.27.147 2100 > /tmp/elaboralog/ftp_log_fase2

Controlla, comunque, il man di ftp per una conferma ;)

Ciao :)

Ho provato ma non funge.

ho cambiato il file .netrc così:

machine 192.168.27.147
login utente
password 12345
macdef backup
binary
mput /tmp/elaboralog/*_-totale.txt
quit

mirrorx
30-09-2011, 09:16
questo è l'output:

Connected to 192.168.27.147 (192.168.27.147).
220 TYPSoft FTP Server 1.11 ready...
331 Password required for utente.
230 User utente logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>


sembra non prenda i comandi ftp... :confused:

DigitalKiller
30-09-2011, 10:05
Prova in questo modo
echo "$ backup" | ftp -i 192.168.27.147

mirrorx
30-09-2011, 11:26
Provo subito.
Ma...
.. cosa fa il comando inserito in quel modo ?