web-dev-qa-db-ja.com

cron.hourlyまたはcrontabを使用する必要がありますか?

Awstatsの使用/スケジュールに関するすべての提案は、次のようにcrontab経由であるようです:0 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=mysite -update >/dev/null(1時間ごとに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エントリーを持たないのですか?

9
fizzy drink

crontab -eは、crontabを作成する従来の方法です。私はそれをぎこちなく古臭く感じますが、人々はまだそれを使用しています。

/etc/cron.hourlycron.dailycron.weeklyなどの/etc/cron.dなどは、便利でパッケージマネージャーや構成管理などの自動化ツールと連携して機能するため、ほとんどのLinuxディストリビューションで提供されていますシステム。既存のcrontabを編集するスクリプトを作成するのに比べて、パッケージマネージャーがファイルを/etc/cron.hourly/fooにドロップするのは非常に簡単です。パッケージマネージャーを使用してプログラムでファイルを編集すると、ファイルが破損したり、重複したエントリが追加されたり、間違った行が削除されたり、コメントが台無しになったりする可能性があります。この問題については、 有害と見なされるEditfiles を参照してください。しばらくの間存在しています。

Crontabコマンドを実行すると、指定したcronフォルダーにエントリが作成されますか?

いいえ。/etc/cron.daily/fooはパッケージマネージャーによって作成されるか、手動で作成されます。 crontabコマンドを実行しても作成されません。 crontab -eは、/varなどの/var/spool/cron/rootの下にcrontabを作成します。

私は/etc/cron.$period/foo/etc/cron.dを好んでいます。なぜなら、その階層はすっきりと整理されており、構成管理システム用に簡単にスクリプト化できるからです。 /etc/crontabはLinuxでも利用できますが、少しモノリシックで、プログラムで編集するのが困難です。 FreeBSDのようなシステムは/etc/crontab/etc/periodicをサポートしています。

13