LoginSignup
1
0

More than 3 years have passed since last update.

ラズパイでcronがうまく設定できないときのTips

Posted at

概要

ラズパイを買って、なにかしら定期処理させようとしたときにちょっとハマった。
そもそもcron触ったことない場合のcronの注意と
ラズパイだとコマンドちょっと違うよっていう話。

僕と同レベルの初学者向けに書いてます。

ラズパイ編

cronの起動、再起動

/etc/init.d/cron start
/etc/init.d/cron restart

↓は検索するとよく出てくるけど

service crond restart

debian(ラズパイのOS)だとそんなものないよってなるので注意。

ログ

設定

/etc/rsyslog.conf(抜粋)
###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
#cron.*             /var/log/cron.log
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
lpr.*               -/var/log/lpr.log
mail.*              -/var/log/mail.log
user.*              -/var/log/user.log

以下の記述がデフォルトでは、
コメントアウトされてるので、解除。

#cron.*             /var/log/cron.log
↓
cron.*             /var/log/cron.log

確認方法

当たり前だけど、これでいけます。

cat /var/log/cron.log

cron

設定方法

以下のコマンドでエディターが開きます。
色々書いてるけど、一番下に実行したいコマンド書いたら実行されます。

crontab -e

※PHPを実行したいけどエラーが出たとき

フルパスで書くのが重要

例えば、
/var/www/html/cron.php
を実行したいとき。

このファイル内でなにかしらインクルードしてる場合は、

cron.php
include("./hogehoge.php")

↑こう書くとエラーが出る。

cron.log
(CRON) error (grandchild #***** failed with exit status 255)

なのでフルパスで書いてあげる。

cron.php
include("/var/www/html/hogehoge.php")

また、実行したいファイルでなく、PHPの場所も書いたほうがいい。
僕は書いたら動きました。

* * * * * /usr/bin/php /var/www/html/cron.php

終わりに

間違ってたら指摘ください

1
0
1

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
1
0