日付 - 次の勤務日を取得する方法(週末は無視)

日付 - 次の勤務日を取得する方法(週末は無視)

特定の時間にサーバーを一時停止して起動するためにクローンジョブを設定しています。

2つのコマンドを使用しています。月曜日から木曜日まで運営:

rtcwake -m mem -t $(date +%s -d "08:00")

もう一つは金曜日に実行されます:

rtcwake -m mem -t $(date +%s -d "monday 08:00")

この分離を不要にすることが可能かどうか疑問に思います。dateこの言葉を理解できれば、状況next weekday 08:00は非常に単純化されます。

これが実際に可能かどうか、どの構文を使用するべきかを見つけることができません。

私は基本的に、土曜日と日曜日にサーバーが目を覚ますのを避けたいと思います。

ベストアンサー1

を使用したい場合はksh93、「次の営業日0800」を簡単に計算できます。アメリカに住んでいると仮定すると、平日の最初の営業日は通常月曜日です。

$ printf "%T\n"                
Tue Jan  5 16:04:37 GMT 2021
$ printf "%T\n" "0 8 * * 1"
Mon Jan 11 08:00:00 GMT 2021
$ printf "%(%s)T\n" "0 8 * * 1"
1610352000
$ 

上記の仕組みの鍵は、"0 8 * * 1"5つのcrontab時間と日付フィールドを表す文字列です。crontab(5)これらのフィールドの詳細については、マンページを参照してください。

ksh93時間形式がこの準クローンタブ項目形式の特定の部分を認識し、その日付を指定された形式で出力することを知っている人はほとんどいません。

おすすめ記事