似乎所有使用/安排 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
只是想让你知道,我的 awstats 已更新完毕,它创建了报告,一切都很好。
运行 crontab 命令是否会在指定的 cron 文件夹中创建条目?(即 cron.hourly 或 cron.daily 等)?或者它们不相关?如果它们相关,为什么我的用户没有 crontab 条目?
答案1
crontab -e
是创建 crontab 的传统方法。我觉得它很笨拙而且过时,但人们仍然使用它。
/etc/cron.hourly
,包括cron.daily
、cron.weekly
&/etc/cron.d
等,它们很方便,并且与包管理器和配置管理系统等自动化工具配合良好。/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
。