View Full Version : Login FTP Automatico (Da linux > Windows) uso di .netrc
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:
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) ?
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...
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
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 :)
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
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
Provo subito.
Ma...
.. cosa fa il comando inserito in quel modo ?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.