LoginSignup
15
11

More than 3 years have passed since last update.

cronがどうやっても動かない時に考えられる原因とその対処法

Posted at

ちょくちょくcronが動かない場面にぶち当たるので備忘録
※この記事はCentOS6系を想定しています。

1. そもそもcronが動いてない

service crond status # ステータス確認
service crond start # 起動

2. run levelが正しくない

$ chkconfig --list crond
$ crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

2~5番がONになっていますか? なっていなかったら

$ chkconfig --level 2345 crond on

で設定します。

3. インストールされたcronの種類がanacronであった

CentOS6系にはデフォルトでanacronというcronがインストールされます。
これがどうにも使いづらいのでnoanacronをインストールしましょう。

$ yum -y install cronie-noanacron
$ yum remove cronie-anacron

4.ファイルに実行権限が与えられていない

$ ls -l cron.sh
$ -rw-r--r-- 1 dev dev 1  5月 13 15:54 2019 cron.sh

# 権限を付与
$ chmod +x cron.sh

5.コマンドは絶対パスで指定されているか

# 設定されたcron一覧を確認
$ crontab -l 
php test.php
/usr/bin/php /var/www/html/test.php

6.OSやapacheの時間が日本時間になっていない

以下のコマンドで一発で設定できます。
※開発環境は再起動してください

$ cp -f /usr/share/zoneinfo/Japan /etc/localtime
$ sed -ri "s/Etc\/UTC/Asia\/Tokyo/" /etc/sysconfig/clock

7. cronが日本時間で動いているか確かめる

適当にcronを動かして、ログ/var/log/cronを確認します。
ログを見ると実行時間が-9hになっており、日本時間になっていませんでした。

$ cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ service crond restart
$ service rsyslog restart

このコマンドでcronの実行時間が直ります。

15
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
11