2013-02-23 2 views
3

Мне нужно запустить несколько команд параллельно, включая SCP. Для этого я использую GNU Parallel. Проблема в том, что я не знаю, как передать пароль SCP. Это строка, подобная той, я бегу:Выполнение SCP в GNU Parallel

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

ls И если находит 3 файла, УПП задать 3 раза для пароля в то же время, и я могу только ввести пароль к последнему процессу подсказывать для этого.

Я временно решил эту проблему, используя открытый ключ, но это не будет вариантом в будущем из-за политики компании. Я прочитал страницы руководства SCP, и я не мог найти вариант, но я вполне уверен, что Parallel должен иметь возможность разрешить мне вводить пароль.

Кто-нибудь знает способ решить это?

EDIT: Я хочу знать, если есть способ, которым я могу сказать parallel пароль, чтобы он мог дать его scp каждый раз, когда он просит. Может быть что-то вроде этого:

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

Но указав, что перенаправление STDIN для scp и не для ls или parallel.

ответ

3

Вы должны посмотреть на ssh-agent: Преимущество наличия сертификата с защитой парольной фразы с удобством ввода вашей кодовой фразы только один раз.

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

EDIT: параллельно sshpass -p $ PASS Scp -p $ PORT -rp {} ~/to_dir ::: $ ADDRESS: ~/from_dir/* – Jordan

+2

Добро пожаловать на переполнение стека! Хотя этот код может ответить на вопрос, было бы лучше включить некоторый _context_, объясняя _how_ он работает и _when_ использовать его. Ответы только на код не полезны в долгосрочной перспективе. Кроме того, вы можете отредактировать свой ответ, не нужно добавлять комментарии, чтобы указать его. Я отредактировал его для вас, чтобы добавить изменения и исправить форматирование кода (четыре пробела для выделения кода). –

Смежные вопросы