Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

24.2. Anacron を使用した繰り返しの非同期ジョブのスケジュール設定

Anacron は、cron と同様に、タスク (別名ジョブ) の定期的な実行をスケジュールするためのサービスです。ただし、anacron は、2 つの点で cron と異なります。

  • 予定した時間にシステムが稼働していなかった場合、anacron のジョブはシステムが稼働するまで延期されます。
  • anacron のジョブは、最大で 1 日 1 回実行することができます。

ユーザーは、anacrontab ファイルとも呼ばれる anacron テーブルファイルで anacron ジョブを指定します。その後、これらのファイルは crond サービスが読み取り、ジョブを実行します。

24.2.1. Anacrob ジョブの前提条件

anacron ジョブのスケジュール設定を行う前に、以下を行います。

  1. cronie-anacron パッケージがすでにインストールされていることを確認します。

    ~]# rpm -q cronie-anacron

    cronie-anacron はすでにインストールされる可能性があります。これは、cronie パッケージのサブパッケージであるためです。インストールされていない場合は、以下のコマンドを使用します。

    ~]# yum install cronie-anacron
  2. crond サービスはインストール時に有効になっており、ブート時に自動的に開始するよう設定されています。サービスを無効にしている場合は有効にしてください。

    ~]# systemctl enable crond.service
  3. 現在のセッションで crond サービスを開始します。

    ~]# systemctl start crond.service
  4. (オプション) 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. 以下を選択します。

    • ジョブを実行する頻度。たとえば、毎日を指定する場合は 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
  2. 作成された行を /etc/anacrontab に追加します。

これでジョブはスケジュールされたとおりに実行されます。

簡単なジョブの例は、/etc/anacrontab ファイルを参照してください。ジョブの指定方法に関する詳細は、anacrontab(5) man ページを参照してください。

ジョブの時間、日、週、月ごとのスケジュール設定

ジョブは、anacron を使用して日、週、月ごとにスケジュールを設定できます。「ジョブの時間、日、週、月ごとのスケジュール設定」を参照してください。