[ubuntu][個人用メモ] cronは動いているけど、cron.dailyが動かない?

AIX、UNIX、Linux

cronは*nixを使用している方ならば当たり前に使用していると思いますが、ズボラしてcron.dailyにscriptを置いて動作させようと思った時にハマったのでご紹介。

まぁ、このようにscript類を置いているとします。

$ ll /etc/cron.daily/
total 52
drwxr-xr-x   2 root root 4096 Jan  1 00:20 ./
drwxr-xr-x 102 root root 4096 Jan  1 00:20 ../
-rwxr-xr-x   1 root root 1474 Jun 19  2017 apt-compat*
-rwxr-xr-x   1 root root  314 Nov 27  2015 aptitude*
-rwxr-xr-x   1 root root  355 May 22  2012 bsdmainutils*
lrwxrwxrwx   1 root root   34 Dec 30 10:55 checkUpdate.sh -> /home/kometch/hosts/checkUpdate.sh*
-rwxr-xr-x   1 root root 1597 Nov 27  2015 dpkg*
-rwxr-xr-x   1 root root   52 Nov 12 08:02 log2ram*
-rwxr-xr-x   1 root root  372 May  6  2015 logrotate*
-rwxr-xr-x   1 root root 1293 Nov  7  2015 man-db*
-rwxr-xr-x   1 root root 1387 Sep  6 00:24 ntp*
-rwxr-xr-x   1 root root  249 Nov 13  2015 passwd*
-rw-r--r--   1 root root  102 Apr  6  2016 .placeholder
-rwxr-xr-x   1 root root  441 Jan 28  2016 sysstat*

このような感じですね。
もちろん、crontabにはcron.dailyが実行されるように記述があります。しかし、実はcheckしてみると以下のように対象の一覧にはcheckUpdate.shが表示されません。

$ sudo run-parts --list /etc/cron.daily
/etc/cron.daily/0anacron
/etc/cron.daily/apache2
/etc/cron.daily/apport
/etc/cron.daily/apt-compat
/etc/cron.daily/bsdmainutils
/etc/cron.daily/cracklib-runtime
/etc/cron.daily/dpkg
/etc/cron.daily/locate
/etc/cron.daily/logrotate
/etc/cron.daily/man-db
/etc/cron.daily/passwd
/etc/cron.daily/update-notifier-common
/etc/cron.daily/upstart

調べてみると以下のような条件がある模様です。

Raspberry Piでcrondは動いているのにcron.hourlyが動かない? - Qiita
問題の起きた環境 ハード:Raspberry Pi 2 Model B OS:debian 8 起きた問題の詳細 定期的に実行したいコマンドがあったので、hogehoge.shを作成して/etc/cron.hourly内に...
POINT

debian

  • ファイル名に使える文字[0-9A-Za-z-_]
  • .“は使えない ( hoge.sh などは無視される)

RedHat

  • 末尾が”~“か”,“以外のファイル

なるほどー Ubuntu環境だとファイル名に”.”を含めてしまうと無視されるのか。
というわけで修正。

$ sudo ln -s /home/kometch/hosts/checkUpdate.sh /etc/cron.daily/checkUpdate
$ sudo run-parts --test /etc/cron.daily
/etc/cron.daily/apt-compat
/etc/cron.daily/aptitude
/etc/cron.daily/bsdmainutils
/etc/cron.daily/checkUpdate
/etc/cron.daily/dpkg
/etc/cron.daily/log2ram
/etc/cron.daily/logrotate
/etc/cron.daily/man-db
/etc/cron.daily/ntp
/etc/cron.daily/passwd
/etc/cron.daily/sysstat

含まれるようになりました。

このあたり、Debian(Ubuntu)とRHEL(CentOS)との動作の違いは気をつける必要がありそうですね。

この記事を書いた人

kometchtech

うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。 Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

kometchtechをフォローする
タイトルとURLをコピーしました