Назад | Перейти на главную страницу

Что мне следует использовать cron.hourly или crontab?

Кажется, что все предложения по использованию / планированию awstats сделаны через crontab, как таковые: 0 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=mysite -update >/dev/null (запускает awstats ежечасно).

Однако, если я проверю crontab -l, он говорит, что crontab пуст для моего пользователя.

Однако когда я проверяю /etc/cron.hourly, У меня есть файл awstats со следующим:

#!/bin/bash
exec /usr/share/awstats/tools/awstats_updateall.pl now         -configdir="/etc/awstats"           -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
exit 0

Просто чтобы вы знали, моя статистика обновляется нормально, она создает отчеты, и все в порядке.

Создает ли запуск команды crontab запись в указанной папке cron? (т.е. cron.hourly или cron.daily и т. д.)? Или они не связаны? Если они связаны, почему у моего пользователя нет записи в crontab?

crontab -e это традиционный способ создания файла crontab. Мне это кажется неудобным и старомодным, но люди все еще используют его.

/etc/cron.hourly, включая cron.daily, cron.weekly & /etc/cron.dи т. д. предоставляются большинством дистрибутивов Linux, потому что они удобны и хорошо работают с инструментами автоматизации, такими как менеджеры пакетов и системы управления конфигурацией. Диспетчеру пакетов очень легко перетащить файл в /etc/cron.hourly/foo по сравнению со сценарием редактирования существующего crontab. Программное редактирование файла с помощью диспетчера пакетов может привести к повреждению файла, добавлению повторяющихся записей, удалению неправильной строки, искажению комментариев и т. Д. Файлы редактирования считаются вредоносными для некоторого обсуждения, так как эта проблема существует некоторое время.

Создает ли запуск команды crontab запись в указанной папке cron?

Нет. /etc/cron.daily/foo создается менеджером пакетов или создается вручную. Он не создается при запуске команды crontab. crontab -e создаст crontab под /var, Такие как /var/spool/cron/root.

я предпочитаю /etc/cron.$period/foo и /etc/cron.d потому что эта иерархия аккуратная и организованная, и ее легко написать сценарий для моей системы управления конфигурацией. /etc/crontab также доступен в Linux, но он немного монолитен и его сложно редактировать программно. Такие системы, как поддержка FreeBSD /etc/crontab и /etc/periodic.