2013-02-23 57 views
3

我需要並行運行一些命令,包括SCP。爲此我使用GNU並行。問題是我不知道如何將密碼傳遞給SCP。這類似於我跑的一行:在GNU Parallel中執行SCP

ls 2011_* | parallel scp {} [email protected] 

如果ls發現3個文件,SCP同時索要密碼3次,我只能輸入密碼的最後一個進程提示爲了它。

我暫時解決了使用公鑰連接的這個問題,但由於公司政策,這將不會成爲未來的選項。我閱讀了SCP手冊頁,但找不到選項,但我相當確信Parallel應該有一個選項允許我輸入密碼。

有人知道一種方法來解決這個問題嗎?

編輯:我想知道是否有一種方法,我可以告訴parallel密碼,因此它可以在每次需要它的時間把它給scp。也許像這樣的東西:

ls 2011_* | parallel scp {} [email protected] < file_with_password.txt 

但指定的STDIN重定向是scp而不是lsparallel

回答

3

你會想看看ssh-agent:有一個密碼保護證書的好處,只需輸入一次便捷的密碼。

1
parallel sshpass -p $PASS scp -P $PORT -rp {} ~/to_dir ::: $ADDRESS:~/from_dir/* 
+1

編輯: 平行sshpass -p $ PASS SCP-P $ PORT -rp {}〜/ to_dir ::: $地址:〜/ from_dir/* – Jordan 2016-03-18 21:03:26

+2

歡迎堆棧溢出!雖然這段代碼可能會回答這個問題,但最好包含一些_context_,解釋它的工作原理和_when_使用它。從長遠來看,僅有代碼的答案是沒有用的。此外,你可以[編輯]你的答案,不需要添加評論來表明它。我已經編輯它爲您添加您的更改和修復代碼格式(代碼高亮顯示四個空格)。 – 2016-03-18 21:11:53

相關問題