Linuxのcrontabの使い方

コマンドを定期的に実行してくれる便利機能です。
例えば10分おきに、「/var/log/message」コマンドを出力させたい場合に、このcrontabを使用することで可能になります。

ちなみに今回のOSもCentOSです。

crontabでの設定方法

cronは通常はrootで実行しますが、ユーザー単位でcronを実行したい場合は以下のコマンドで設定をします。

rootで設定
crontab -e


各ユーザー単位での設定
/etc/cron.d/ユーザー名

crontab書式

crontabは以下のようなコマンドの書式となっています。

crontab [-u (user)] ( -e | -l | -r | -i | -s)

各オプションの使用用途

-e
crontabを編集します。

-l
crontab内の設定を表示します。

-r
現在設定されているcrontabを削除します。(※完全に削除されるので使用時は要注意)

-i
-rオプションの前につけることことによって(-ir)事項確認を聞かれるようになります。
「これホントに消すの?」ってなかんじ。

-s
SElinux絡みだがよくわからん。というか、つかわん。

設定書式説明

cronの実行コマンドですが、左から何時の時刻に設定するかをまず設定します。

* * * * * { 実行コマンド }

*はそれぞれ左から順に「分」「時間」「日」「月」「曜日」となっています。

設定の数値は以下のようになっています。
分 0-59
時 0-23
日 1-31
月 1-12
曜日 0-7(0or7は日曜日、月=1,火=2,水=3,木=4,金=5,土=6)

crontab基本設定

それでは実際に設定コマンドを紹介します。
コマンドは「/usr/sbin/ntpdate ntp.nict.jp」をさまざまな設定で実行していきます。

毎時10分になると実行

10 * * * * /usr/sbin/ntpdate ntp.nict.jp

毎日AM9:10分になると実行

10 9 * * * /usr/sbin/ntpdate ntp.nict.jp

毎月15日のAM9時10分になると実行

10 9 15 * * /usr/sbin/ntpdate ntp.nict.jp

5月15日のAM9時10分になると実行

10 9 15 5 * /usr/sbin/ntpdate ntp.nict.jp

5月の毎週月曜日のAM9:10分になると実行

10 9 * 5 1 /usr/sbin/ntpdate ntp.nict.jp

10分ごとに実行

/*10 * * * * /usr/sbin/ntpdate ntp.nict.jp

1時間ごとに事項

00 0-23/1 * * * /usr/sbin/ntpdate ntp.nict.jp

毎日AM9時とPM10時に実行

00 9,22 * * * /usr/sbin/ntpdate ntp.nict.jp

毎週月曜日と金曜日のAM9時とPM10時に実行

00 9,22 * * 1,6 /usr/sbin/ntpdate ntp.nict.jp

毎日AM9時~PM10時で1時間ごとに実行

00 9-22 * * * /usr/sbin/ntpdate ntp.nict.jp

毎月15日のAM9時~PM10時で1時間ごとに実行

00 9-22 15 * * /usr/sbin/ntpdate ntp.nict.jp

以上です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!