На этот вопрос уже есть ответ здесь:
Я хочу создать сценарий оболочки, который запускается ежедневно и получает файл с другого сервера с помощью команды SCP.
Проблема в том, что когда я ввожу эту команду в терминале, она запрашивает пароль.
a) Как сценарий оболочки может ввести пароль?
b) Действительно ли это хорошая идея хранить пароль в сценарии оболочки?
Пример команды:
scp -r myUser@myServer:/local/java/log/archive/2018/02/16/log.2018-02-16.gz ~/Temp/
Первый шаг: установка пароля меньше доступ SSH (через ssh-keygen):
Выполненный ssh-keygen
(Вы заканчиваете с 2 файлами: id_rsa и id_rsa.pub, каждый - Ваш .pub открытый ключ для совместного использования с миром, другим закрытым ключом). Затем выполненный ssh-copy-id myUser@myServer
. Просто введите свой пароль при запросе и Вы теперь можете к SSH, не имея необходимость вводить Ваш пароль для myUser@myServer.
Второй шаг: автоматизируемый ежедневно scp:
Ввести crontab -e
, выберите своего любимого редактора и добавьте строку у основания файла: 0 0 * * * scp -r myUser@myServer:/local/java/log/archive/2018/02/16/log.2018-02-16.gz ~/Temp/
сохраните и... Voilà! (можно использовать a @daily scp (...)
запись crontab, которая является в основном тем же как 0 0 * * *),
См. Anacron (Планирование задания с помощью crontab, что произойдет, когда компьютер будет завершением работы в течение того времени?) для управления задачей Крона, когда Вы компьютер снижаетесь.