Bash-команда, использующая подстановочный знак вместо folder для копирования содержимого папок нескольких файлов в один каталог?

Поскольку кажется, что ограничение больше на стороне удобства пользователя (не нужно вводить пароль снова и снова), лучшим выбором здесь будет ввести ваш открытый ключ (файл .pub в вашей папке ~/.ssh) в файл назначения ~/.ssh/authorized_keys.

Здесь папки ~ означают дома пользователей, которые задействованы на машинах источника и назначения соответственно.

Если userA@machine1 авторизован на userB@machine2, то (и только тогда) пароль не нужен, когда userA@machine1 открывает SSH-соединение с userB@machine2. Авторизация осуществляется исключительно посредством ассиметричного шифрования (только авторизованный пользователь должен иметь свой собственный закрытый ключ), поэтому пароль не нужен.

Таким образом, команды scp и ssh по-прежнему будут иметь 2 соединения (но всегда только одно за раз, не одновременно!), но оба будут полностью беспарольными.

Если у вас нет доступа к серверу, вы должны попросить администратора добавить ваш файл с открытым ключом. Всем задействованным машинам нужен только ваш единственный файл открытого ключа.

На самом деле, у меня запущен cronjob, который почти выполняет точно такую же задачу (ssh для запуска дампа, затем scp для копирования, даже с базой данных MySQL), забавное совпадение. ;)

1
02.07.2013, 00:17
1 ответ

Чтобы копировать каталоги, вам нужно сказать cp копировать рекурсивно, передав ему флаг -r.

cp -R ~/dir/*/* ~/target/

Если ~/target не существует, вам нужно сначала создать его.

mkdir ~/target
1
29.04.2021, 00:48

Теги

Похожие вопросы