CentOS 7で、cronを使用して指定日時にジョブを実行するには「etc/crontab」「/etc/cron.d/以下のファイル」「各ユーザのcrontabファイル」のいずれかにジョブを設定します。
そこでここでは、CentOS 7で「etc/crontab」にジョブを設定する方法を紹介します。

Linux環境でcronでのコマンド実行結果を分かりやすくメール通知する方法
ここでは、Linux環境でcronでのコマンド実行結果を、mailコマンドを使って分かりやすくメール通知する方法を紹介します。
目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。
# cat /etc/redhat-release
CentOS Linux release 7.4.1708
/etc/crontabの書き⽅
まずは、viなどのテキストエディタで「etc/crontab」を開きます。
# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
* * * * * nginx /usr/bin/php -q /usr/share/nginx/servermemo/wordpress/wp-cron.php >/dev/null
上3行は、環境変数の設定部分です。「MAILTO」を設定するとcronの標準出⼒・標準エラー出力を、指定の宛先へメールで送ることができます。
ジョブの登録方法
新たなジョブを登録する際は、上記のように最終行に追記します。
書式:[分] [時] [⽇] [⽉] [曜⽇] [ユーザー名][コマンド]
設定項目 | 説明 |
---|---|
分 | 0~59の数字で指定します。 |
時 | 0~23の数字で指定します。 |
日 | 1~31の数字で指定します。 |
月 | 1~12の数字で指定します。 |
曜日 | 数字で指定します。0と7が日曜日で1以降は順に月~土となります。 |
ユーザー名 | コマンドを実行するユーザーを指定します。 |
コマンド | フルパスで指定します。 |
実行周期の記述例
実行周期の記述方法は、いろいろあるので以下を参考にしてみてください。
記述 | 説明 |
---|---|
* * * * * | 毎分実行 |
0 * * * * | 毎時0分に実行 |
*/10 * * * * | 10分おきに実行 |
0 12 * * * | 毎日12:00に実行 |
45 23 * * * | 毎日23:45に実行 |
30 8 * * * | 毎日8:30に実行 |
* 1 * * * | 毎日1:00から1:59まで1分おきに実行 |
5 9-21/3 * * * | 毎日9:05,12:05,15:05,18:05,21:05に実行 |
0 17 * * 1 | 毎週月曜の17:00に実行 |
0,30 15 * * 0,2,3 | 毎週日,火,水曜の15:00と15:30に実行 |
0 21 * * 1-6 | 毎週月曜日から土曜まで21:00に実行 |
0 13 1 * * | 毎月1日の13:00に実行 |
30 5 1,15 * * | 毎月1日と15日の5:30に実行 |
0-10 17 1 * * | 毎月1日の17:00から17:10まで1分おきに実行 |
動作確認
/etc/crontabに新しいジョブを登録したら、指定した周期でジョブが実行されているか、ログファイル「/var/log/cron」を確認します。
あとがき
ちなみに、CentOS 7ではジョブのスケジュール実行手段としてcron以外に「systemd timer」もあります。