我想创建shell脚本来调用特定文件的tftp传输到我的本地机器
这是我想要做的操作
tftp 172.2.22.2
get file1_in_remote location file2_in_local_machine
quit
但是我无法使其正常工作,因为当第一个 tftp 命令执行时,控制将进入tftp提示符。它只是喜欢这个
tftp>
它不接受我在shell脚本中给出的第二和第三个命令。
但是当我退出 tftp 提示时,bash会输出错误消息,例如
get: command not found
quit: command not found
那我怎样才能完成呢
EDIT1 :
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.
这两个命令与我的ubuntu(14.0.4)系统不兼容
答案 0 :(得分:2)
我找到了解决方案。
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
!
这对我有用
还有一个解决方案
tftp 172.2.22.2 << 'EOF'
#explictely specify the file names. varibales wont accept here.
get /tftpboot/file1.txt /home/file2.txt
quit
EOF
但在第二个解决方案中,您必须明确提供文件位置。在第一个解决方案中,文件名可以存储在变量中,我们可以在“ get ”命令中使用该变量。
答案 1 :(得分:1)
您可以使用atftp
安装:
sudo apt-get install atftp
使用:
atftp 172.2.22.2 -g -r /remote/file.txt -l /tmp/local.txt