0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CentOSで使っていたcronのファイルをUbuntuに持ってきたら動かなくなった

Last updated at Posted at 2024-07-04

CentOSで動いているサーバーで使っていたCronの設定ファイルを再利用しようとして、そのままUbuntuで動いているサーバーに転送したのだけれど、全く動いている気配がない。

いったいどういう事ですか……?と最近なったので、メモを残しておく。

事象

CentOSサーバーで/etc/cron.d配下にhogehoge-1.0.0 みたいな名前のcronの設定ファイルを置いていて、Ubuntuサーバーにも同様に配置した。

Cronの実行時間になっても全く実行されている気配がなく、ログも出ていなかった。

原因

結論としては、ファイル名がいけないようだった。

なんとなくファイル名のドットが怪しい気がして、ファイル名を hogehoge にリネームしたところ、問題なく実行された。

一旦動いたものの、なんだか腑におちず、Ubuntuでは .(ドット) が使えないのかな?と思って調べていたら、以下のスレッドを発見した。
https://bugs.launchpad.net/ubuntu/+source/cron/+bug/706565

どうもUbuntuのcronはrun-partsコマンドを利用して動かしているらしく、スレッドによるとrun-parts コマンドの制約に従う必要があるらしい。

run-partsコマンドのマニュアルを見てみると、ファイル名の制約が書いてあった。
https://manpages.ubuntu.com/manpages/noble/man8/run-parts.8.html

If neither the --lsbsysinit option nor the --regex option is given then the names must
consist entirely of ASCII upper- and lower-case letters, ASCII digits, ASCII underscores,
and ASCII minus-hyphens.

つまり、この4つの文字しか使えないらしい。

  • アルファベット(大文字・小文字)
  • 数字
  • アンダースコア( _ )
  • ハイフン( - )

で、ファイル名にドットを入れていたものは動かないと………………。そうですか………。
さっきまで(CentOSのサーバー上で)は動いてたじゃん😭

ちなみに、かなり丁寧にまとめてくれていた以下の記事を後から読んだ。
先に読みたかった……!でも先に読んでたら苦労してないから忘れてただろうな……。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?