2013-10-17 32 views
1

我有一個執行一些重命名和歸檔步驟的shell腳本。我已經添加了sftp命令來複制多個文件。但是當我嘗試通過膩子登錄到遠程機器時,它會要求確認,如您確定要繼續連接(是/否)?。我需要輸入是的。但由於這是通過腳本來完成的,我不知道該怎麼做。下面是我使用如何在sftp模式下的shell腳本中添加確認

cd <File Source Location> 
sftp [email protected] 
sftp> cd <target location to be copied> 
sftp> mput *.gz 

quit 

我如何執行sftp [email protected]後在上面的代碼是通過腳本。

任何幫助,非常感謝。

回答

1

我認爲你正試圖解決錯誤的問題。

sftp要求您確認,因爲它不知道主機的密鑰。因此,你需要將它添加到您known_hosts文件中像這樣

ssh-keyscan -H remoteserver >> ~/.ssh/known_hosts 

我建議使用scp命令代替sftp,因爲它會做所有你想一步到位。

scp somewhere/*.gz [email protected]:somewhere/else 

如果你不想做它的一些原因。您可以考慮一個非常不安全命令

sftp -o StrictHostKeyChecking=no [email protected] 

通過使用上面你是在中東攻擊容易受到男人的命令,你已經被警告。

+0

謝謝@Grzegorz。我在known_hosts中添加了密鑰。我們必須使用sftp來複制文件,所以我如何在執行shell腳本時執行mget命令,從而執行所有操作,然後等待我輸入命令。有沒有辦法繞過這個腳本來通過mget命令。 – Warlord

+0

@Sriram是的,'scp'命令完全符合你的要求,它不像'sftp'那樣是交互式的,所以你可以在腳本中使用它。 –