我的 Ubuntu 服务器上有一个 cron 每天运行这个 bash 脚本:
#!/usr/bin/expect -f
spawn sftp user@ip
expect "password:"
send "password\n"
expect "sftp>"
send "cd remote_directory\n"
expect "sftp>"
send "lcd ~/dtc/data/outstanding\n"
expect "sftp>"
send "mget * \n"
expect "sftp>"
send "exit\n"
interact
它通过 SFTP 连接到远程服务器并下载一堆文件。这工作没问题,但是,我希望这些文件出现在运行此脚本的计算机(我的服务器)上的某个目录中。
这就是我在第 8 行尝试做的事情,但没有成功。如何通过 cron 运行此脚本,并确保它 cd 到我的服务器上的正确目录中,以便将下载的文件放入正确的目录中?
答案1
最简单的解决方案是cd
进入要保存文件的目录,然后运行 Expect 脚本,省略lcd
第 8 行脚本中的命令。