我試圖自動將我的Linux服務器上的某些文件上傳到支持FTP的Windows服務器。我成功地使用SFTP手動執行,然後發出放命令。但是,從cron調用時,我的腳本不停地輸入密碼。爲什麼在發送密碼後使用Expect自動化SFTP掛起?
下面是我在嘗試使用代碼:
#!/usr/bin/expect
#!/bin/sh
clear
spawn sftp [email protected]
expect "password"
send "world"
expect eof
因爲它的立場,它每次都要求輸入密碼停止。爲什麼send "world"
沒有完成密碼對話框?
UPDATE:
#!/usr/bin/expect
#!/bin/sh
clear
spawn sftp [email protected]
expect "[email protected]'s password:"
send "world"
expect eof
現在我得到以下錯誤:
xml_reports.sh: line 5: spawn: command not found
couldn't read file "[email protected]'s password:": no such file or directory
xml_reports.sh: line 7: send: command not found
couldn't read file "eof": no such file or directory
是用大寫字母密碼請求?如果是這樣,那麼你需要使用期望「[Pp]密碼」 – Petesh
@Petesh,真的你想發送一個回車('\ r') - 模擬用戶擊中回車。 –
@glennjackman刪除了違規評論。 – Petesh