Создайте скрипт для загрузки файла и задания cron для него через ssh

#linux #cron #wget

#linux #cron #wget

Вопрос:

Я пытаюсь создать скрипт для ежедневной загрузки файла с перезаписью старой версии.

Я почти уверен, что мне нужно задание cron и сценарий оболочки со строкой wget в нем, но это все, что я знаю. Кроме того, мне нужно сделать все это через ssh, если только нет другого способа, о котором я не знаю.

Если я сделаю это через SSH, какие команды мне нужно использовать на различных этапах процесса? Как будут выглядеть файлы cron и оболочки? Если есть способ получше, пожалуйста, просветите!

Спасибо! Zeem

Комментарии:

1. Зачем вам нужен SSH для автоматической загрузки файла? wget уже поддерживает SSL. Удаление старых версий — это работа для rm . Задание cron создается через crontab -e . Опубликуйте то, что у вас есть на данный момент, и люди ответят на ваши оставшиеся вопросы.

2. Я имел в виду использование SSH для создания задания cron.

3. @KilianFoth Иногда хотелось бы войти через SSH для загрузки файлов, которые не должны быть общедоступными. Например, резервное копирование файлов. Если бы кто-нибудь мог их загрузить, это был бы беспорядок : D

Ответ №1:

Из вашего описания я представляю следующее:

  1. подключитесь к серверу через SSH
  2. найдите местоположение wget

    какой wget

(на моей машине это / usr/bin / wget)

  1. добавьте следующее в свой /etc / crontab (или файл cronjobs) с помощью текстового редактора, такого как pico или vi:

    @daily /usr/bin/wgethttp://remote-host.name/path/to/file.txt /local/path/to/file.txt

(Если вы добавите это в /etc / crontab, вам, вероятно, понадобится дополнительный пользовательский параметр, но для этого вы можете посмотреть справку crontab.)

надеюсь, это поможет.

Ответ №2:

Внедрите ssh-аутентификацию без пароля между хостами. http://www.linuxproblem.org/art_9.html

Таким образом, хост A может создать / реализовать скрипт или cronjob на хосте B, используя ssh.

Чтобы создать cronjob с помощью скрипта, ваш скрипт создаст (например) текстовый файл по адресу /etc/cron.d/CronJobName . Важно, чтобы содержимое файла соответствовало формату corn:http://en.wikipedia.org/wiki/Cron#Examples

(Надеюсь, я правильно понял ваш вопрос)

Ответ №3:

Спасибо за ваши ответы, к счастью, это было намного проще. Я смог добавить задание cron через cpanel, и строка wget попала прямо туда.