Bash 腳本 SFTP 到遠端伺服器並下載文件,cd 到本機電腦上的正確目錄

Bash 腳本 SFTP 到遠端伺服器並下載文件,cd 到本機電腦上的正確目錄

我的 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 行腳本中的命令。

相關內容