Тестовый прогон cron - PullRequest
       12

Тестовый прогон cron

31 голосов
/ 15 ноября 2011

Недавно я добавил задание cron, но допустил ошибку при передаче команды и, следовательно, задание никогда не выполнялось.Есть ли способ проверить изменения cron, которые мы сделали?

Обратите внимание, что я действительно скопировал и вставил команду из моей командной строки, и это вызвано просто случайным нажатием клавиши.

Ответы [ 4 ]

45 голосов
/ 15 ноября 2011

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

Например, запускать задание каждые две минуты:

*/2 * * * * echo "Hello World"

И я запускаю tail -f в моем файле журнала (/var/log/syslog в Debian).

27 голосов
/ 20 марта 2015

Этот вопрос также задавался на serverfault и получил пару дополнительных ответов

Ниже приводится перефразированная версия решения Марко : (Не уверен, если лучший ediquite не предоставляет ответ только по ссылке или не копирует чужое решение)

Создание файла среды с временной записью cron

* * * * *  /usr/bin/env > /home/username/cron-env

Затем создайте сценарий оболочки с именем run-as-cron, который выполняет команду с использованием этой среды.

#!/bin/sh

. "$1"
exec /usr/bin/env -i "$SHELL" -c ". $1; $2"

Дайте разрешение на выполнение

chmod +x run-as-cron

и затем он используется следующим образом:

./run-as-cron <cron-environment> <command>

, например

./run-as-cron /home/username/cron-env 'echo $PATH'
5 голосов
/ 04 июня 2017

Ответ Джошуа не работает для меня.Две проблемы:

  • Переменные в cron-env файле не экспортируются (set -a необходимо).

  • Скрипт все еще привязан к текущему tty(setsid необходимо).

Сценарий run-as-cron должен быть

#!/bin/sh

. "$1"
exec setsid /usr/bin/env -i "$SHELL" -c "set -a; . $1; $2" </dev/null

Недостаточно повторений ', чтобы исправить свой ответ или добавить комментарий ...

0 голосов
/ 30 января 2018

используйте команду crontab -e Откроется редактор vim, и все, что вам нужно сделать, это * * * * * /somepath/urscript.sh, убедитесь, что у вас есть соответствующие пробелы между датами и путем к сценарию После выполнения вы можете проверить в / var / spool / mail полный след выполнения скрипта или ошибок. Для тестирования нет способа ... но в случае, если ur sh urscript.sh работает, у cron tab проблем не будет, так как это то же самое, что вы делаете вручную.

...