このレシピを使用してインスタンスを追加し、正常にセットアップしてデプロイしました。
cron "haproxy_log" do command "logrotate /etc/logrotate.d/haproxy" minute '15' end
しかし、/etc/crontab
を見ると、そこにあることがわかりません。 cronシェフはcronジョブをどこに置きますか?
Sudo crontab -u root -l
を行うと、自分の仕事が表示されます。しかし、どうして/etc/crontab
でそれを見ることができないのですか?
Cronは実行されませんが、次の手順を実行してコマンドを手動で実行できます。Sudo logrotate /etc/logrotate.d/haproxy
-なぜそれが発生するのですか?
Sudo crontab -u root -l
で表示されるcrontabは通常のユーザーですユーザーのcrontabroot
、次の場所にあります。
/var/spool/cron/crontabs/root
(Debian、Ubuntu、HP-UX、SGI IRIX)/var/spool/cron/root
(CentOS、RedHat、RHEL、Fedora、IBM AIXおよび会社)/var/cron/tabs/root
(FreeBSD、OpenBSD、NetBSD)/usr/lib/cron/tabs/root
(Mac OS X)これらのファイルは直接編集しないでください。ただし、常にcrontab
コマンドを使用して編集してください。
root
's crontabのコマンドも常にroot
として実行されます。つまり、.
m h dom mon dow command
構文を持っていますsystem-wide/etc/crontab
および/etc/cron.d/*
では、ユーザーも指定する必要があります。
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
# m h dom mon dow user command
これに関するヒントは、Chef's Cookbook Referenceにも隠されています Resource cron
:
cronリソースには、
crontab
プログラム(通常はcron)へのアクセスが必要です。警告:cronリソースは、crontabファイルのエントリを変更するためにのみ使用する必要があります。 cookbook_fileまたはtemplateリソースを使用して、crontabファイルをcron.dディレクトリに追加します。
cron_d
軽量リソース( cron クックブックにあります)は、crontabファイルを管理するためのもう1つのオプションです。
AIXとSolarisを除くUnixプラットフォームでは、Chefは一般的なcrontab構文を使用して一時ファイルを作成し、それを/usr/bin/crontab
コマンド( ソース )にフィードします。
OS /ディストリビューションに応じて、場所はcron
の実装によって異なります。たとえばDebian/Ubuntuの場合(man 8 cron
):
cronは、スプール領域(/ var/pool/cron/crontabs)でcrontabファイル(/ etc/passwdのアカウントにちなんで名付けられています)を検索します。見つかったcrontabはメモリにロードされます。このディレクトリ内のcrontabに直接アクセスしないでください。これらにアクセスして更新するには、crontabコマンドを使用する必要があります。
cronは/ etc/crontabも読み取りますが、これはわずかに異なる形式です(crontab(5)を参照)。 Debianでは、/ etc/crontabのコンテンツは、/ etc/cron.hourly、/ etc/cron.daily、/ etc/cron.weekly、および/etc/cron.monthlyの下でプログラムを実行するように事前定義されています。この構成はDebianに固有です。以下のDEBIANSPECIFICの注記を参照してください。
さらに、Debianでは、cronは/etc/cron.dディレクトリ内のファイルを読み取ります。 cronは、/ etc /cron.d内のファイルを/ etc/crontabファイルと同じように扱います(ファイルの特殊な形式に従います。つまり、ユーザーフィールドが含まれます)。ただし、これらは/ etc/crontabから独立しています。たとえば、環境変数の設定を継承しません。この変更はDebianに固有のものであり、以下のDEBIANSPECIFICの注記を参照してください。
/ etc/crontabと同様に、/ etc /cron.dディレクトリ内のファイルの変更が監視されます。一般に、システム管理者は/etc/cron.d/を使用するのではなく、標準のシステムcrontab/etc/crontabを使用する必要があります。
短編小説:
crontab
によって管理されます/etc/cron.d/<filename>
です。