LoginSignup
11
4

More than 5 years have passed since last update.

Raspberry Piでcrondは動いているのにcron.hourlyが動かない?

Posted at

問題の起きた環境

ハード:Raspberry Pi 2 Model B
OS:debian 8

起きた問題の詳細

定期的に実行したいコマンドがあったので、hogehoge.shを作成して/etc/cron.hourly内に配置したのですが何時間待っても、実行されないという問題が発生しました。

とりあえず、情報収集して、以下のことは判明しました。

・crondが動作していることを確認
 →動いている。
hogehoge.shのパーミッションは755
 →実行権限はちゃんと与えられている。
hogehoge.shのシバンは#!/bin/shになっているので、/bin/sh hogehoge.shを実行
 →hogehoge.shに記述したコマンドは実行された
 →→hogehoge.sh内の記述がおかしいわけではない。

以上の事から、crondは動いているのにcron.hourlyが動いてないようだと考えました。
debian8でもcronのログはデフォルトでは出力されないため以下のサイトを元にログ有効化に
みざるきかざるいわざる Debian 6.0 (squeeze) での、cronのログ有効化 

cronのログを見ると、

cron.log
︙
Jan  2 19:17:01 raspberrypi CRON[2321]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jan  2 20:17:01 raspberrypi CRON[2337]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jan  2 21:17:01 raspberrypi CRON[2361]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jan  2 22:17:01 raspberrypi CRON[2377]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jan  2 23:17:01 raspberrypi CRON[2393]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
︙

原因・解決策

cronのログを見て、run-partsというコマンドが何らか問題になっているのではないかと思い、ググりました。
run-partsが認識するファイル名ではまった - うまいぼうぶろぐ

debian系ではファイル名に"."が入っていると。
redhat系ではファイル名の末尾が"~"か","であると。
実行されないそうです。

ファイル名をhogehoge.shからhogehogeに変更したところ、無事にコマンドが走りました。

著者の所感

これまでredhat系しか使った頃がなかったので知りませんでした。
入門書などでは基礎的な知識なのかもしれませんが、基本独学なのでまったくしらずはまってしまいました。

11
4
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
11
4