|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
[BASH] Trasferimento file via ftp
Ciao a tutti. Ho scritto uno script bash per ricevere dei dati dalla porta seriale e trasferirli automaticamente su un server ftp.
Codice:
#!/bin/bash USER=utente # Utente COM=/dev/ttyS0 # Porta COM su cui restare in ascolto RX='/usr/bin/rx -caX' # Comando per la ricezione del file SHAREDIR=/home/utente/Download # Directory di condivisione del file BACKUPDIR=/home/utente/Download/backup # Directory di backup del file ricevuto TMPDIR=/tmp # Directory temporanea FILE=FIle.dat # File ricevuto TIME=`date +%d%m%y%H%M%S` # Timestamp del file ricevuto if [ -s $TMPDIR/$FILE ] then IFS_BAK=$IFS IFS='\n' for r in $(cat $TMPDIR/$FILE) do len=`echo $r | wc -c | tr -d ' '` if [ $len -lt '36' ] then IFS=$IFS_BAK su $USER -c "export DISPLAY=:0.0; zenity --error --text='Si è verificato un errore nella ricezione del file. Ripetere la trasmissione'" exit 1 fi done IFS=$IFS_BAK mv $TMPDIR/$FILE $TMPDIR/File_$TIME RECORD=`cat $TMPDIR/File_$TIME | wc -l` su $USER -c "export DISPLAY=:0.0; zenity --question --text='Il file ricevuto contiene $RECORD articoli. Proseguire?'" if [ "$?" -eq 0 ] then FILIALE=`sed -n '1p' $TMPDIR/File_$TIME | cut -c 6-11` FLAG=`sed -n '1p' $TMPDIR/File_$TIME | cut -c 13` mv $TMPDIR/File_$TIME $TMPDIR/$FLAG$FILIALE$TIME.pdt cd $TMPDIR echo "$ ServerFtp" | ftp -i xx.xx.xx.xx rm -f $TMPDIR/$FLAG$FILIALE$TIME.pdt su $USER -c "export DISPLAY=:0.0; zenity --info --text='Elaborazione terminata correttamente!'" else mv $TMPDIR/File_$TIME $BACKUPDIR/ su $USER -c "export DISPLAY=:0.0; zenity --error --text='Elaborazione interrotta!'" fi fi $RX $TMPDIR/$FILE < $COM > $COM exit 0 Non appena il processo viene rilanciato, il file contentente i dati scaricati dovrebbe essere inviato al server ftp. Questo, però, non avviene. Lo script torna in ascolto sulla seriale, ma sul server non viene caricato niente. Eseguendo lo script manualmente, invece, funziona correttamente. ![]() Quale potrebbe essere il problema? Avete dei suggerimenti? Grazie a tutti
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2004
Messaggi: 9516
|
in genere e' dovuto o alle variabili d'ambiente non settate o dal path assoluto
p.s. o con: #!/bin/bash -l |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Ho appena dato uno sguardo ai log di proftpd sul server.
Credo di aver capito il problema; la richiesta di connessione al server ftp Codice:
echo "$ ServerFtp" | ftp -i xx.xx.xx.xx
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2004
Messaggi: 9516
|
intendi
Codice:
ftp -i user:password@xx.xx.xx.xx |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Scusami, ma non ho capito. Potresti essere più chiaro?
![]()
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2004
Messaggi: 9516
|
user
![]() user=utente ftp password=password utente ftp xx.xx.xx.xx=ip server ftp |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
![]() Il comando è chiaro, ma non riesco a capire cosa dovrei fare
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
![]() |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2004
Messaggi: 9516
|
scusami, forse non ho capito bene io che intendi......
via script batch il modo per connettersi a un sito ftp, puoi passare user ![]() p.s. anche se a dire la verita' io uso ancora un altro metodo: http://www.inlumineconsulting.com:80...pting.ftp.html |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
![]() Conosco ed ho già utilizzato entrambi i metodi per effettuare le connessioni ad un server ftp. In questo caso, però, sono obbligato ad utilizzare .netrc in quanto, in base ad un flag presente nel file ricevuto, devo connettermi a server ftp distinti
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
![]() |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2004
Messaggi: 9516
|
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
![]()
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
![]() |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2004
Messaggi: 9516
|
se da terminale va....
io mi concentrerei sulle variabili d'ambiente |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
![]() Come faccio a verificare le variabili d'ambiente?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
![]() |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2004
Messaggi: 9516
|
fai degli echo durante lo script
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Finalmente sono riuscito a risolvere!
![]() La causa di questo "errore" è la variabile "HOME" impostata su / e non su /root. E' bastato aggiungere il comando Codice:
export HOME=/root Grazie dell'aiuto ![]()
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:43.