Запуск сценария каждый день с помощью cronjob

10

Мне нужен точный код, который я бы использовал, потому что я не могу понять это. Я использую, crontab -eчтобы настроить работу cron, но когда я ее сохраняю, она никогда не работает. Я также просто пытаюсь запустить файл, вызываемый newmail.shпользователем root.

user219706
источник
Вы нашли ответ на свой вопрос?
bendaf

Ответы:

10

Если вы хотите, чтобы задача выполнялась каждый день в 15:17, вы должны использовать:

17 15 * * * root newmail.sh

Это говорит: «запускайте newmail.sh от имени root каждый день недели, каждый день месяца, каждый месяц в 15:17».

Минутный час Дом Месяц Доу Пользователь CMD

минута - определяет, в какую минуту часа будет выполняться команда, и находится в диапазоне от 0 до 59

hour - определяет, в какое время будет выполняться команда, и указывается в 24-часовых часах, значения должны быть от 0 до 23 (0 - полночь)

dom - это день месяца, в который вы хотите запустить команду, например, для запуска команды 19-го числа каждого месяца, dom будет 19.

месяц Это месяц, в котором будет выполняться указанная команда, он может быть указан численно (0-12) или в качестве названия месяца (например, май)

dow - это день недели, в который вы хотите запустить команду, он также может быть числовым (0-7) или как название дня (например, солнце).

пользователь - это пользователь, который запускает команду.

cmd - это команда, которую вы хотите запустить. Это поле может содержать несколько слов или пробелов.

от: http://www.unixgeeks.org/security/newbie/unix/cron-1.html

dm78
источник
в Ubuntu 16 и более поздних версиях новый формат: «команда mh dom mon
dow
на Ubuntu 19 минута первая. Кроме того, он предупреждает вас о неправильном времени.
Келалака
6
sudo crontab -e

Добавьте эти строки в конец файла

*/1 * * * * wget -O /dev/null  project_crone_URL

(Запускать cron раз в 1 минуту)

0 0 * * * wget -O /dev/null  project_crone_URL

(Запускать cron один раз в 24 часа)

сохранить файл

Запустите crontab этой командой

sudo /etc/init.d/cron start

Остановите crontab этой командой

sudo /etc/init.d/cron stop

Перезапустите crontab этой командой

sudo /etc/init.d/cron restart
Раман Сингх
источник
2

Если вы используете, crontab -eтак как Ubuntu 16.0+ не будет иметь пользовательского поля, поэтому правильный формат:

17 15 * * * newmail.sh

Это говорит: «запускайте newmail.sh каждый день недели, каждый день месяца, каждый месяц в 15:17».

Другими способами ответ dm78 является правильным и содержит точное описание формата.

Также, если что-то пойдет не так, и у вас установлена ​​почтовая система, он отправит вам сообщение. Для получения дополнительной информации см этот ответ

Если вы заинтересованы в регистрации cronjobs, вы можете использовать этот ответ .

bendaf
источник
2
Это зависит от того, какой crontab вы редактируете. crontab -eШтуковина не имеет поля пользователя (как вы правильно сказать) , но файл /etc/crontab(так называемая система кронтаба) и ниже файлы /etc/cron.d сделать есть поле пользователя.
PerlDuck