通过tftp为传输文件创建bash文件

时间:2016-03-23 10:58:00

标签: shell tftp

我想创建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)系统不兼容

2 个答案:

答案 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