さくらのVPSでCentOS7のサーバーを構築する 番外編…Cron(noanacron)をインストールする

本ブログの「さくらのVPS でCentOS7のサーバーを構築する」シリーズ本編では、サーバーの起動からWordPressが稼働を開始するところまでの手順を解説しました。今回は番外編として、Cron(noanacron)をインストールします。

もくじ

  • 番外編…IPアドレスベースSSL
  • 番外編…SNI SSL
  • 番外編…Apache再起動時に秘密鍵のパスフレーズ入力をサボる方法
  • 番外編…「Let’s Encrypt」でSSL/TLSサーバー証明書を無料で取得する
  • 番外編…Cron(noanacron)をインストールする
    • Cron(noanacron)とは
    • インストール手順
    • 各種設定
    • 使い方

Cron(noanacron)とは

Cron(noanacron)は、何らかのコマンドを定期的に実行させるとき(毎日○時○分に実行する、毎週○曜日に実行する、など)に使用されるサービスです。設定ファイルに実行したいコマンドと実行させる日時を記載し、指定した日時にサーバーが起動していればそのコマンドが実行されます。

CentOS7ではデフォルトで「anacron」が導入されていますが、anacronの場合はコマンドの実行頻度を1日1回よりも多くすることはできず(noanacronならサーバーリソースが許せば1分に1回でもOK)、またroot以外のユーザーが自分で定期的に実行するコマンドを追加することもできません(noanacronなら一般ユーザーも自分で設定できる)。というわけで、今回はanacronをアンインストールし、noanacronをインストールします。

インストール手順

まずは以下のコマンドでanacronをアンインストールします。

anacronをアンインストールしたら、noanacronをインストールします。

各種設定

インストール後、きちんと設定を行いましょう。とりあえずCronサービスを起動します。通常はインストール時に自動起動設定が施されるので心配は不要ですが、一応自動起動を設定するコマンドも掲載します。

当方の環境では、Cronの設定ファイルは以下のディレクトリにありました。

/etc/crontabを開いても、cron.dailyやcron.hourlyなどのディレクトリ配下にあるファイルを実行するための記述がないのでビビるかもしれませんが、その辺は/etc/cron.d/dailyjobsなどにきちんと記載されているので安心してください。

Cronを利用できるユーザーの制限

Cronを使わせたくないユーザーが居る場合などは、/etc/cron.allowファイル及び/etc/cron.denyファイルを使ってCronを利用できるユーザーを制限しましょう。ホワイトリスト方式で運用する場合は/etc/cron.allowファイルにCronの使用を許可するユーザー名を書き、ブラックリスト方式で運用する場合は/etc/cron.denyファイルにCronの使用を拒否するユーザー名を書きます。

使い方

root権限でCronの設定ファイルをいじれる場合は、/etc/crontabを編集します。

初期状態ではこんな感じのことが書かれていると思います。

左から「実行する時刻(分-時)」「実行する日(日付-月-曜日)」「コマンドを実行するユーザーの名前」「実行するコマンド」を入力していきます。(PATHなどの環境変数も設定できるので、必要に応じて追記しましょう。)

実行日時は1つのフィールドに複数の値を設定できます。

  • ,(カンマ) 値のリスト(例 1,3,5)
  • -(ハイフン) 値の範囲(例 4-10…4,5,6,7,8,9,10と同じ意味)
  • *(アスタリスク) そのフィールドで取りうるすべての値(月のフィールドなら「毎月」)
  • /(スラッシュ) 間隔指定(例 月フィールドで「*/3」…3時間に1回)

例えばこんな感じです。

これは「3時間に1回、○時7分になったらhogeユーザーの権限で/home/hoge/tmpにあるファイル名が『sess_』で始まるファイル(最終更新から20分以上経過)を探し出し、それを削除する」という意味の記述です。

なお、「実行間隔の指定は面倒くさい!」というお方のために、もっと楽なやり方もあります。実行間隔が「毎時」「毎日」「毎週」「毎月」であれば、実行したいプログラムをそれぞれ「/etc/cron.hourly/」「/etc/cron.daily/」「/etc/cron.weekly/」「/etc/cron.monthly/」にアップロードすれば、「毎時」の場合は毎時1分に、「毎日」の場合は毎日午前4時2分に、「毎週」の場合は毎週日曜日の午前4時22分に、「毎月」の場合は毎月1日午前4時42分にプログラムが実行されます。この日時は「/etc/cron.d/0hourly」「/etc/cron.d/dailyjobs」を編集すれば変更できますが、毎○実行するものの実行タイミングがかぶらないように調整しましょう。

root以外のユーザーがCronの設定をする

「crontab -e」コマンドを実行すれば、root以外のユーザーも自分専用のCron設定ファイル(/var/spool/cron/hoge)が開かれ、それを編集することができます。設定の書き方はroot権限で設定ファイルを編集するときと同じです。…ただ、「crontab -e」コマンドは少し打ち間違えると「crontab -r」になってしまい、万一「crontab -r」を実行してしまうとユーザー設定ファイルのCron設定が全部削除されるという事故が発生するので、Vimで編集できるように設定を変えるのも手です。その場合は以下のコマンドを実行し、Cronを使うユーザーの設定ファイルは事前に作成します。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: