web-dev-qa-db-ja.com

crontabの曜日{0-7}には8つのオプションがありますが、1週間には7日しかありません

曜日:許容範囲0〜7。日曜日は0または7です。

私はグーグルの後でこれを見つけました、私の質問はなぜ両方の値(0,7)が日曜日に対応する必要があるのですか?

117
Ruban Savvy

これは移植性の問題です。初期のUnicesでは、いくつかのバージョンのcronが0を日曜日として受け入れ、いくつかのバージョンが7を日曜日として受け入れました-このフォーマットは両方で移植できるようにする試みです。 vixie-cronのman 5 crontabから(自分の強調):

曜日を指定する場合、0日と7日の両方が日曜日と見なされます。 BSDとAT&Tはこれに同意しないようです。

132
Chris Down

@ChrisDownの優れた回答に加えて、これは ローカリゼーションの問題 の気の利いた解決策になる可能性もあります。プログラム的には非常に簡単ですが、どちらの方法でも、どちらのグループでも簡単に使用できます。

28
l0b0

より簡単に言うと、フィールドは3つのバイナリビットであり、000から111または0から7になります。したがって、3ビットのフィールドには合計8つの値があります。追加の値は最初の値と同じであるため、便宜上、0(日曜日)または1(月曜日)から開始し、6回増分して1週間をカバーできます。

1
Greg Nolte