24.2. Anacron を使用した繰り返しの非同期ジョブのスケジュール設定
Anacron
は、cron
と同様に、タスク (別名ジョブ) の定期的な実行をスケジュールするためのサービスです。ただし、anacron
は、2 つの点で cron
と異なります。
-
予定した時間にシステムが稼働していなかった場合、
anacron
のジョブはシステムが稼働するまで延期されます。 -
anacron
のジョブは、最大で 1 日 1 回実行することができます。
ユーザーは、anacrontab
ファイルとも呼ばれる anacron テーブルファイルで anacron ジョブを指定します。その後、これらのファイルは crond
サービスが読み取り、ジョブを実行します。
24.2.1. Anacrob ジョブの前提条件
anacron
ジョブのスケジュール設定を行う前に、以下を行います。
cronie-anacron パッケージがすでにインストールされていることを確認します。
~]# rpm -q cronie-anacron
cronie-anacron はすでにインストールされる可能性があります。これは、cronie パッケージのサブパッケージであるためです。インストールされていない場合は、以下のコマンドを使用します。
~]# yum install cronie-anacron
crond
サービスはインストール時に有効になっており、ブート時に自動的に開始するよう設定されています。サービスを無効にしている場合は有効にしてください。~]# systemctl enable crond.service
現在のセッションで
crond
サービスを開始します。~]# systemctl start crond.service
(オプション) anacron を設定します。たとえば、以下を変更できます。
- ジョブの実行時に使用するシェル
-
PATH
環境変数 ジョブが E メールを送信する場合はメールアドレス
anacron
の設定は、anacrontab(5) man ページを参照してください。
デフォルトでは、anacron 設定には、コンピューターが接続していない場合は実行できないようにする条件が含まれています。この設定により、anacron ジョブの実行によりバッテリーが消耗することはありません。
コンピューターがバッテリーで動作している場合でも anacron の実行を許可する場合は、/etc/cron.hourly/0anacron
ファイルを開いて、次の部分をコメントアウトします。
# Do not run jobs when on battery power online=1 for psupply in AC ADP0 ; do sysfile="/sys/class/power_supply/$psupply/online" if [ -f $sysfile ] ; then if [ `cat $sysfile 2>/dev/null`x = 1x ]; then online=1 break else online=0 fi fi done
24.2.2. Anacron ジョブのスケジュール設定
root ユーザーとして anacron ジョブのスケジュール設定
root
ユーザーは、/etc/anacrontab
にある anacron テーブルを使用します。root
としてジョブをスケジュール設定するときは、以下の手順を使用します。
root
ユーザーとして anacron ジョブのスケジュール設定
以下を選択します。
-
ジョブを実行する頻度。たとえば、毎日を指定する場合は
1
、3 日に 1 回を指定する場合は3
を使用します。 -
ジョブ実行の遅延。たとえば、遅延なしを指定する場合は
0
、1 時間の遅延を指定する場合は60
を使用します。 -
ロギングに使用されるジョブ識別子。ロギングに使用されます。たとえば、
my.anacron.job
行にジョブをロギングするには、my.anacron.job
を使用します。 実行するコマンド。たとえば、
/usr/local/bin/my-script.sh
を使用します。選択した値をジョブ指定に組み合せます。以下は指定の例です。
3 60 cron.daily /usr/local/bin/my-script.sh
-
ジョブを実行する頻度。たとえば、毎日を指定する場合は
-
作成された行を
/etc/anacrontab
に追加します。
これでジョブはスケジュールされたとおりに実行されます。
簡単なジョブの例は、/etc/anacrontab
ファイルを参照してください。ジョブの指定方法に関する詳細は、anacrontab(5) man ページを参照してください。
ジョブの時間、日、週、月ごとのスケジュール設定
ジョブは、anacron を使用して日、週、月ごとにスケジュールを設定できます。「ジョブの時間、日、週、月ごとのスケジュール設定」を参照してください。