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