Як змінити час запуску cron.daily в Linux


22

У мене є сценарій в cron.daily, який працює в певний час щоранку. Мені потрібно змінити час його запуску.

Як змінити час запуску сценаріїв cron.daily?

linux  cron  redhat 

Відповіді:


24

У Red Hat 5 або старші це контролюється в /etc/crontab.

Використовуються новіші версії /etc/anacrontab. За замовчуванням cron.dailyсценарії виконуються о 4:02. Редагування /etc/crontabзмінить цей час.

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

У системах Debian / Ubuntu це також контролюється /etc/crontab.

Наприклад; установка Ubuntu 12.04 за замовчуванням:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

І в будь-якому випадку ви можете дізнатися більше подробиць про те, який синтаксис використовувати тут: http://linux.die.net/man/5/crontab або запустивши man 5 crontabмайже будь-яку систему Linux.


3
Не забудьте виконати, sudo systemctl restart cron.serviceзмінивши це. Це стосується systemdсистем на базі, таких як сучасні Debian і Ubuntu.
TranslucentCloud

3

в RHEL / CentOS 6 і вище

# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# the maximal random delay added to the base delay of the jobs

RANDOM_DELAY=45

# the jobs will be started during the following hours only

START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily

7       25      cron.weekly             nice run-parts /etc/cron.weekly

@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

Отже, щоб відповісти на питання, як змінити час, який він працює, мені потрібно відредагувати START_HOURS_RANGE, правильно?
thelr

1

На openSUSE, crontab виглядає так:

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1

run-cronsКоманда перевіряє тимчасові мітки файлів в /var/spool/cron/lastrunчислі іншого. Коли час з часу останнього виконання минув, він запустить файл cron знову.

На час можна вплинути, торкнувшись файлу. Наприклад, встановити його на 2012-11-17 03:15:

touch -t 201211140315 /var/spool/cron/lastrun/cron.daily

0

Якщо лінії там не було, це нічого не вирішить.

Спробуйте знайти, де згадується cron.daily, с

grep -R cron.daily /etc

Потім візьміть його звідти.


Ви повинні бути дуже обережними, якщо використовуєте цю команду. Наприклад, для мого RedHat він повертає / etc / crontab та / etc / anacrontab файли. А якщо ви видалите рядки з записом cron.daily, ви просто вимкнете виконання всіх скриптів, які слід виконувати щодня (для мене це logrotate, tmpwatch, cups і так далі).
Лукаш Стельмах

2
Я не пропонував видаляти рядок, питання було де змінити час cron.daily. Ось як ви знайдете це (тож це було скоріше "відповідь на допомогу собі"

-1

Ви хочете зробити дві речі:

  1. Видаліть скрипт з cron.daily і поставте десь ще.
  2. Додайте запис у свій crontab, щоб запустити вказаний сценарій у вказаний час:

00 10 * * * /path/to/script

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.