Почему crontab работает с подстановочными знаками (*), но не с числами?

Это ужасный ответ, но он предоставлен для полноты. Сегодня обновил ядро. Старое ядро ​​Fedora было 4.9.13-200.fc25.x86_64. Новое ядро ​​— 4.9.13-201.fc25.x86_64.

После обновления ядра я вручную удаляю старое ядро ​​из /boot, используя rm. Это стандартная процедура для меня в Linux (я всегда выполняю ее, чтобы удалить ненужный хлам). В этом случае я запустил:

su -
cd /boot
rm -rf *4.9.13-200*
rm -rf .*4.9.13-200*

После ручного удаления я регенерирую меню Grub и затем перезагружаюсь. Это также стандартная процедура для меня в Linux.

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

После перезагрузки старого имени больше не было:

$ dmesg | egrep -i '(bulldozer|skylake)'
[  0.065941] Performance Events: PEBS fmt3+, Skylake events, 32-deep LBR, full-width counters, Intel PMU driver.
[  1.096957] systemd[1]: Set hostname to <skylake>.

Итак, что-то повлияло на имя хоста, используемое systemd, но я не уверен, что именно.

Ранее я пытался регенерировать grub.cfg, поэтому не уверен, что это правильный ответ. Я предполагаю, что пакет вызвал исправление, и после перезагрузки я заметил, что все было так, как и ожидалось.

1
14.02.2017, 15:21
2 ответа

Из справочной страницы crontab

Команды выполняются cron (8), когда поля минуты, часа и месяца года совпадают с текущим временем и хотя бы одним из двух дней {{1 }} поля (день месяца или день недели) соответствуют текущему времени

. Вам необходимо иметь одно из полей дня. Если вы хотите, чтобы это запускалось в 10:25 каждый день, просто используйте

25 10 * * 0-6 /home/pi/test.sh

EDIT: Это на самом деле неверно, потому что все * помечают crontab как выполняющийся каждую минуту. Мы выяснили, что это проблема системного времени. Еще раз проверьте системное время. Демон cron работает вне UTC. Поскольку сценарий работал, когда вы установили для всех полей значение *, мы знаем, что фактическая логика работает.

-1
28.01.2020, 02:12

Чтобы упростить задачу, я бы указал, что это задание:

25 10 * * * date > /home/pi/test.txt

Оно будет выполняться в 10:25. Если он не запускается в это время, проверьте часовой пояс в / etc / default / cron и при необходимости измените его. После внесения изменений вы захотите перезапустить службу service cron restart .

0
28.01.2020, 02:12

Теги

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