2012-05-21 68 views
-2

我想一些文件從遠程服務器到本地系統同步。因爲文件比較大,這可能會持續數個小時,所以我要運行它的nohup:慶典:輸入密碼自動

nohup rsync -r <user>@<remote>:<dir> <local-dir> & 

的問題是,它提示輸入遠程服務器的密碼,但之後我輸入密碼,在bash剛纔說

-bash: mypassword: command not found

我也曾嘗試--password-file選項,但似乎--password文件不是SSH賬號,它是rsync服務。

有人可以告訴我如何自動輸入密碼,同時保持nohup。

+2

只需以正常方式設置一個ssh密鑰對 - 這個問題也屬於http://superuser.com,因爲它不是與編程相關的,所以有很多這方面的例子。 –

+0

密碼輸入不起作用,因爲該命令在後臺運行。你有沒有嘗試重新從文件中引導密碼?類似命令:nohup的rsync -r @

+2

你的問題似乎是這樣的一個的副本:http://stackoverflow.com/questions/3299951/how-to-pass-password-for-rsync -ssh命令 –

回答

2

您不想輸入該類用例的密碼。但是,您可以使用密碼保護的SSH密鑰(ssh-keygen -f ~/.ssh/id_rsa_that_key),並使用ssh-add ~/.ssh/id_rsa_that_key保持該密碼在高速緩存中。事實上這不是編程相關...

0

從手冊頁:

在遠程後臺程序有些模塊可能需要驗證。如果是這樣,連接時您將收到密碼提示。您可以通過將環境變量RSYNC_PASSWORD設置爲您要使用的密碼或使用--password-file選項來避免密碼提示。這在編寫rsync腳本時可能很有用。

警告:在某些系統中,所有用戶都可以看到環境變量。在那些使用--password-file的系統上推薦使用。

在我看來,你的錯誤是因爲你將密碼分配給一個變量,它被解釋爲你的bash腳本的命令。

嘗試設置上述環境變量,從您的bash腳本中刪除「mypassword」,並再次嘗試!