Below you will find pages that utilize the taxonomy term “code”
anacron の実行タイミング
本記事は、CentOS 8のリリース時に調査した内容を、Rocky Linux 8.5 ベースで再調査した内容です。
仮想マシンの普及に合わせて、実行タイミングをランダム化しホストサーバに負荷が集中しないようにできる anacron は注目されたタスクスケジューラーですが、設定ファイルの内容とジョブの実行タイミングについて、誤った認識を持つ事が有ります。
例えば、以下の /etc/anacrontab
において、ジョブが実行されるのは次のどれでしょうか?
]$ cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
A. START_HOURS_RANGE と RANDOM_DELAY から求められ、[3-22]:00 - [3-22]:45 のいずれかランダム。つまり、3時 ~ 23時 の間の 00分 ~ 45分 のいずれか。
B. 上記のAに delay in minutes
を足した値。cron.dailyであれば 5 なので、 [3-22]:05 - [3-22]:50 のいずれかランダム。
C. 上記のBの範囲にて、 anacron が最も初めに起動したタイミング。つまり24h稼動であれば 3:[05-50] のいずれかランダムに実施し、3:51以降に cron.daily を実施する事は無い。22:00 にマシンが初めて起動した場合、 22:[05-50] のいずれかランダム。
D. 上記のCと似ているが、「delay in minutes
+ (RANDOM_DELAYによってランダムに算出された分数)」は、毎時00分では無く、 anacron の起動タイミングに加算される。つまり、 21:58 に anacron が初めて起動し RANDOM_DELAY で算出された値が3で有る場合に cron.daily であれば 「21:58 + 5 + 3 = 22:06」 に実行される。START_HOURS_RANGE の範囲外である 22:01 にanacronが起動した場合は範囲外なので実行されない。
E. 上記のDと似ているが、ジョブ実行タイミングが START_HOURS_RANGE の範囲内である場合のみ実行する。つまり、 21:52 に anacron が初めて起動し RANDOM_DELAY で算出された値が3で有る場合に cron.daily であれば 「21:52 + 5 + 3 = 22:00」 に実行される。より厳密には、22:00:00 は範囲内として実行されるが、22:00:01 以降であれば、実行しない。
ddコマンドによるpartial readとデータ破損について
dd(1) はブロックデバイスを読み書きする際に非常に便利で、ストレージ装置のバックアップやクローン作成、データ消去などに利用します。その際に(i)bs=[bytes]とcount=[count]で読み込みブロックサイズと個数を指定できますが、ddコマンドと、内部で利用される read(2) の特性を把握しておかなければ、部分的な読み出しにより、期待した出力が得られない事があります。通常は警告が表示されますが、バックアップやクローン用途で使っておりスクリプトで実行している場合、気が付かなければデータ破損に繋がります。
ここではデータ破損と表現していますが、入力と出力がブロック単位で同一とならない事象が発生するものであり、入力データが破損するものでは有りません。