这是我的脚本:
#!/usr/bin/expect
spawn /usr/bin/sftp user@place
expect "password:"
send "mysecret\n"
expect "sftp>"
send "mget dir/*.csv\n";
expect "sftp>"
send "quit\n"
它开始下载,但几秒钟后,它会发送退出命令并在下载完成之前退出程序。
我成功停止它的唯一方法是输入一个“交互”命令,但因为我想将其作为一个 cron 作业运行,所以我不想只生成最终闲置的进程。
有办法实现这一点吗?
编辑:
有人会问为什么我没有 key 设置...这是供应商允许我的唯一方法。
最佳答案
添加行设置超时 -1 似乎已解决此问题
整个脚本应该如下所示:
#!/usr/bin/expect
set timeout -1
spawn /usr/bin/sftp user@place
expect "password:"
send "mysecret\n"
expect "sftp>"
send "mget dir/*.csv\n";
expect "sftp>"
send "quit\n"
关于bash - 下载完成之前使用 SFTP 和 mget 完成的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14372078/