Cron:毎月1日と週の最初の日を除いて毎日実行

Cron:毎月1日と週の最初の日を除いて毎日実行

私はcronに初めてアクセスし、毎月1日と毎週1日を除くすべての曜日にタスクを実行する方法を見つけようとしています。

少し奇妙に聞こえるかもしれませんが、コンテキストではこれはバックアップ操作のためのものです。毎日バックアップしたいのですが、一部のバックアップは長期間保存したいので、毎週のバックアップと毎月のバックアップを実行してください。

毎日のジョブのクローンジョブを設定したいのですが、毎週または毎月のバックアップも実行されている日である場合は、毎日のジョブを効果的に実行しない方法を見つけるのが困難です。毎月毎日別々のクローン作業を追加すればいいと思いましたが、別の作業が多くて正しくない感じがします。

cronでこれを達成するより良い方法はありますか?

ベストアンサー1

私は曜日制限で作業スケジュールをキャッチし、実際の作業の前にdate「月中の日付」テストを追加します。独自の時間と分のフィールド値を使用してください。 Day of Month フィールドは、*その月の特定の日付またはすべての日付で実行されることを意味します。月フィールドもアクティブになります。曜日フィールドは月曜日から土曜日に制限され、週の最初の日はスキップされます(日曜日を週の最初の日として数えると仮定)。月曜日が週の最初の日である場合は、0,2-6代わりに曜日の値を使用してください。

(minute) (hour) * * 1-6 [ $(date +\%e) -ne 1 ] && actual-job

最も簡単な方法(月と曜日のフィールド制限)は機能しませんman 5 crontab勇敢な強調する:

注:コマンドが実行される日付は、「月」と「曜日」の2つのフィールドで指定できます。両方のフィールドが制限されている場合(たとえば、「*」文字を含まない)、次の場合にコマンドが実行されます。誰でもフィールドは現在の時刻と一致します。例えば、

おすすめ記事