Создание рабочих мест крона

Хорошо, таким образом, я имел беглый взгляд на ответы, отправленные по этому вопросу, и повторно сформулировал мое задание крона. Так, позвольте мне сломать это столь ясное, как я могу:

ПК/ОС | Информация о Shell

Я в настоящее время выполняю Lubuntu 14.04LTS x64 на моем Ноутбуке Toshiba. В основном у меня есть (в настоящее время) сценарий оболочки, который копирует каталог A, B, C, D, E, F и G к моему Каталогу Dropbox и локальной копии. Во всех отношениях, давайте назовем это example.sh который хранится в папке /home/user/documents. Я читал на Cron Jobs, посмотрел несколько видео и т.д. и не имел никакой удачи с этим.

Для разъяснения я протестировал сценарий, и он работает. Моя первая идея была следующей:

Откройте терминал и работайте crontab -e и вручную добавьте следующее:

30 * * * * michael home/Documents/example.sh

и даже

@hourly michael home/Documents/example.sh

Я попробовал как корень, и удалив подсистему пользователей. Это не помогло. Недавно, я посмотрел видео того, куда Вы идете корень и перешли к etc/cron.hourly/ и создайте файл и измените владение. Я использовал все вышеупомянутое (следовал за видео точно), и я все еще не смог завершить этот процесс. Запутанный, я пытался восстановить процесс 1, и вместо home/michael/Documents Я указал на вышеупомянутое местоположение и не имел никакой удачи.

Расстраивающая точка здесь, я пропускаю что-то невероятно простое (как, мм, этот вопрос, который я сделал!!).

2
задан 13 April 2017 в 15:25

2 ответа

Некоторые точки, которые, кажется, смущают Вас:

  • # символ комментария. Добавление его к началу строки делает cron проигнорируйте ту строку.
  • Не смешивайте с /etc/cron/hourly и т.д. Нет никакой потребности к, и у них есть другой формат (см. следующий вопрос).

  • Формат crontab пользователя

    minute hour day-of-month month day-of-week command
    

    Формат файлов под /etc/cron отличается и также включает имя пользователя:

    minute hour day-of-month month day-of-week user command
    
  • Необходимо дать полный путь. Пути в Linux всегда запускаются с a /. Это представляет корневой каталог, эквивалент Windows C:/.

  • Необходимо удостовериться, что сценарий является исполняемым файлом. Выполненный chmod +x /home/Documents/example.sh сделать его так.

Так, для запущения скрипта, который расположен в /home/Documents/example.sh (отметьте продвижение /) каждые 30 минут Вы работали бы crontab -e как самостоятельно, не корень, и добавляют эту строку к нему:

30 * * * * /home/Documents/example.sh

Сохраните и закройте crontab, и Вы установлены.

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

30 * * * * /home/Documents/example.sh 2> /tmp/mycrontab.log

Это создаст файл /tmp/mycrontab.log где любые ошибки, произведенные при попытке запустить скрипт, будут распечатаны.

2
ответ дан 2 December 2019 в 02:24

Создание Вашего crontab файла с crontab -e является, вероятно, лучшим методом для Вас, но запуск Ваших crontab строк с # символом говорит системе игнорировать те строки. Удалите # и ведущий пробел перед 30 в Вашей crontab строке. Должен просто быть похожим на это:

30 * * * * /home/michael/Documents/example.sh

Кроме того, удостоверьтесь, что крон работает (ps -ef | grep cron) и что Вашему пользователю разрешают выполнить задания крона. Если Вы не знаете, как сделать это, сослаться на раздел "Enable User Level Cron" в следующей ссылке для специфических особенностей того, как включить крон на уровне пользователя: Справка Сообщества Ubuntu - CronHowTo

Для наблюдения больше о том, что делает крон и почему, выполняет эту команду:

sudo grep -i cron /var/log/syslog | less
2
ответ дан 2 December 2019 в 02:24

Другие вопросы по тегам:

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