2016-03-23 12 views
0

Ich möchte Shell-Skript erstellen tftp Übertragung von bestimmten Datei auf meinem lokalen Rechnerzur Übertragung Datei über TFTP eine Bash-Datei erstellen

dies ist der Betrieb Ich möchte aufrufen

tftp 172.2.22.2 
get file1_in_remote location file2_in_local_machine 
quit 

aber ich tun kann es nicht funktionieren, denn wenn der 1. tftp Befehl ausgeführt wird, wird die Steuerung an die TFTP-Eingabeaufforderung weitergeleitet. seine loook wie diese

tftp> 

Und es wird nicht die 2. und 3. Befehle akzeptieren i in das Shell-Skript gegeben haben.

aber wenn ich Austritt aus der tftp Aufforderung bash gibt eine Fehlermeldung wie

get: command not found 
quit: command not found 

So Wie kann ich es

EDIT1 getan:

tftp 173.32.52.12 -c get MyFile1.txt MyFile2.txt 
tftp 173.32.52.12 -c get MyFile1.txt MyFile2.txt MyFile3.txt etc. etc. 

Diese 2 Befehle funktionieren nicht mit meinem Ubuntu (14.0.4) System

+0

Blick in 'expect' und ähnliche Werkzeuge. –

Antwort

1

Ich fand die Lösung.

file1_in_remote location = "/tftpboot/file1.txt" 
file2_in_local_machine = "/home/file2.txt" 

tftp 172.2.22.2 << ! 
#file names can be stored in varible 
get ${file1_in_remote location} ${file2_in_local_machine}  
quit 
! 

Dieser arbeitete für mich

Und es gibt eine weitere Lösung

tftp 172.2.22.2 << 'EOF' 
#explictely specify the file names. varibales wont accept here. 
get /tftpboot/file1.txt /home/file2.txt 
quit 
EOF 

aber in der zweiten Lösung haben Sie explizit den Speicherort der Datei zu geben. Und in der ersten Lösung kann Dateiname in Variable gespeichert werden und wir können diese Variable im Befehl "get" verwenden.

1

könnten Sie verwenden atftp

Install:

sudo apt-get install atftp 

Verwendung:

atftp 172.2.22.2 -g -r /remote/file.txt -l /tmp/local.txt 
Verwandte Themen