Коли проводяться записи в cron.daily
(і .weekly
та .hourly
), і чи їх можна налаштувати?
Я не знайшов остаточної відповіді на це, і сподіваюся, що існує.
Я працюю RHEL5 і CentOS 4, але для інших дистрибутивів / платформ теж буде чудово.
Коли проводяться записи в cron.daily
(і .weekly
та .hourly
), і чи їх можна налаштувати?
Я не знайшов остаточної відповіді на це, і сподіваюся, що існує.
Я працюю RHEL5 і CentOS 4, але для інших дистрибутивів / платформ теж буде чудово.
Відповіді:
Щодо згаданих вами дистрибуцій:
На CentOS 5.4 (має бути однаково для RHEL5)
grep run-parts /etc/crontab
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
Так cron.daily працює о 04:02 ранку.
Те саме на CentOS 4.8
grep run-parts /etc/crontab
просто знаходимо вказівки щодо виклику запущених частин для кожного з цих каталогів.
На чоловіковій сторінці:
Cron also searches for /etc/anacrontab
/etc/anacrontab
в моїй системі (Fedora 12):
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
Дивитися також man anacrontab
CentOS 6
. Дякую.
Для CentOS 6 вам потрібно вимкнути / etc / anacrontab, і відповідь змінюється, якщо сервер / ноутбук / dekstop / тощо було вимкнено чи ні.
cat /etc/anacrontab
# /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
Отже, між годинами 3:00 та 10:00 PM** (після перезавантаження та після роботи машини протягом 5 хвилин ^^) запустіть /etc/cron.daily. Якщо перезавантаження не буде, завдання має запуститись о 3:05 ранку++.
** As defined by START_HOURS_RANGE
^^ As defined by FIELD_TWO (i.e. the 5 after the 1 in the cron.daily line)
++ plus a random time between 0 and 45 minutes as defined by RANDOM_DELAY
Для систем SuSE (зокрема SLES 11.1 та openSuSE 10.3) щоденний час виконання сценаріїв /etc/cron.daily контролюється значенням змінної DAILY_TIME, встановленої у файлі / etc / sysconfig / cron .
Якщо змінна DAILY_TIME не встановлена, вона за замовчуванням дорівнює: (час останнього завантаження + 15 хвилин).
На Ubuntu ви знайдете файл / etc / crontab, звідки це налаштовано. Я думаю, це щось подібне на RH та Centos.
CentOS6.x / RedHat6.x встановлює за замовчуванням пакет cronie-anacron. Ти мусиш:
yum встановити кроні-ноанакрон
ням стерти кроні-анакрон
Тоді у вас є /etc/cron.d/dailyjobs, щоб налаштувати найкращий час розкладу для вашої щоденної, щотижневої та щомісячної роботи.
Я використовую Slackware (14.0), і не мав /etc/crontab
. Також anacron
не є частиною дистрибуції.
Рішення в моїй системі було таким же простим, як і запуск crontab -l
root:
root@flea:~# crontab -l
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null. We'll do this here since these jobs should run
# properly on a newly installed system. If a script fails, run-parts will
# mail a notice to root.
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this. If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null
З /etc/anacrontab
моєї системи Ubuntu 9.10:
1 5 cron.daily nice run-parts --report /etc/cron.daily
7 10 cron.weekly nice run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly
Оновлення OpenSuse 42.x:
/ etc / crontab показує файл / usr / lib / cron / run-crons, який повинен працювати кожні 15 хвилин.
/isr / lib / cron / run-crons по черзі (має рядки коду), яка шукає змінну під назвою DAILY_TIME в / etc / sysconfig / cron
Файл показує;
# At which time cron.daily should start. Default is 15 minutes after booting
# the system. Example setting would be "14:00".
# Due to the fact that cron script runs only every 15 minutes,
# it will only run on xx:00, xx:15, xx:30, xx:45, not at the accurate time
# you set.
DAILY_TIME=""
Встановіть його на потрібний час та перезапустіть cron via;
systemctl restart cron.service