LoginSignup
0
0

【Linux】cron.dailyに登録したタスクが毎日2回実行されてしまう

Posted at

はじめに

/etc/cron.daily/以下に設定した自動タスクがなぜか毎日2回実行されてしまうので、原因を調査しました。
初歩的なミスでした。。

原因

/etc/cron.d/dailyjobsを編集する前に、オリジナルをバックアップしておこうとして、同ディレクトリに配置していたのが原因でした。

$ ls -la /etc/cron.d
-rw-r--r--. 1 root root 128 Nov  1  2022 0hourly
-rw-r--r--  1 root root 506 May  2 10:01 dailyjobs
-rw-r--r--  1 root root 506 May  2 10:01 dailyjobs.bak

/etc/cron.d/dailyjobsでも/etc/cron.d/dailyjobs.bakでも/etc/cron.dailyを呼んでいるため、必然的に2回実行されます1

/etc/cron.d/dailyjobs
# Run the daily, weekly, and monthly jobs if cronie-anacron is not installed
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# run-parts
30 1 * * * root [ ! -f /etc/cron.hourly/0anacron ] && bash /home/wsigma21/script/dummy.sh
02 4 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
22 4 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
42 4 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly
/etc/cron.d/dailyjobs.bak
# Run the daily, weekly, and monthly jobs if cronie-anacron is not installed
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# run-parts
02 4 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
22 4 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
42 4 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly

dailyjobsという名前にしなければ実行されないと思っていたのですが、、名前に関係なく、/etc/cron.d/以下の設定ファイルは全て毎日実行されます。

対策

バックアップファイルを/etc/cron.d/以外に配置します。

おわりに

最初は/etc/cron.daily/に配置したタスクの設定の誤りだと思い、時間をかけて色々調べたのですが、結局はcronに関する理解不足が原因でした。

参考

cronの何たるかは以下が勉強になりました。

  1. /etc/cron.weekly//etc/cron.monthly/以下のタスクも2回実行されることになります。ただし、今回は両方とも空でした。

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