2013-10-03 45 views
2

我想從遠程服務器上覆制幾個文件到Bash使用scp的本地驅動器。 下面的代碼Bash scp幾個文件的密碼問題

scp -r -q [email protected]$IP:/home/file1.txt $PWD 
scp -r -q [email protected]$IP:/home/file2.txt $PWD 
scp -r -q [email protected]$IP:/root/file3.txt $PWD 

不過的一部分,問題是,它要複製文件時,它都會不斷要求服務器,這是相同的密碼。我希望它只問一次,然後複製我所有的文件。

請不要建議rsync也不要製作密鑰驗證文件,因爲我不想這樣做。 還有其他方法嗎? 任何幫助,將不勝感激

+0

爲什麼* *您不想使用這是適用於大多數SSH/SCP用戶的通用解決方案? – Nicole

+0

使用FTP gui客戶端 –

+0

如何:scp -r -q $ USR @ $ IP:/home/file*.txt $ PWD – michael501

回答

1

您可以使用expect腳本或sshpass

sshpass -p 'password' scp ...

#!/usr/bin/expect -f 
spawn scp ... 
expect "password:" 
send "ur_password" 

的缺點是,你的密碼是現在明文

+1

謝謝你的回答。但腳本是爲了工作,我不認爲他們有「期望」和「sshpass」安裝。 Bash不承認期望,也不會產卵。而這個腳本將運行在不同的地方,所以我不能把它安裝在我的linux上。 – Masster

+0

spawn是一個expect命令,您可以安裝/編譯一次(expect/sshpass),然後將該二進制文件與腳本一起復制 – w00d

+1

請您重新說明一下嗎? – Masster

0

我假設,如果你可以從遠程服務器scp文件,也可以ssh並創建遠程文件的tarball。

-r標誌是遞歸的,用於複製整個目錄,但在命令中列出不同的文件,因此-r變得多餘。

從bash shell中試試這在遠程系統上:

​​
+1

感謝您的幫助,但我無法在遠程服務器中創建文件或文件夾。我只能讀 – Masster

0

那麼,在這種特殊情況下,你可以寫......

scp -q [email protected]$IP:/home/file[1-3].txt $PWD 
+0

謝謝但是如果你注意其中一個文件不在家。並不是所有的文件都在相同的路徑 – Masster