GNU/Linux >> Belajar Linux >  >> Linux

Cronjob berjalan setiap dua minggu, pada hari Sabtu, dimulai pada hari Sabtu ini

Solusi 1:

0 8 * * 6 test $((10#$(date +\%W)\%2)) -eq 1 && yourCommand

date +%W :jumlah minggu dalam setahun dengan Senin sebagai hari pertama dalam seminggu, minggu hari ini 39

10#$(date +%W) :konversi date +W ke angka desimal dan hindari kebingungan parsing basis shell

$((39%2)) :operasi modulo:hasilnya 0 (angka minggu genap) atau 1 (angka minggu ganjil), minggu ini hasilnya 1, minggu depan 0

test 1 -eq 1 :uji aritmatika (sama), dalam hal ini hasilnya adalah boolean true

&& yourCommand :Boolean AND:jalankan yourCommand hanya jika hasil dari perintah sebelumnya adalah boolean true

Perhatikan bahwa tahun ini bisa mendapatkan dua minggu ganjil:53 (tahun ini) dan 1 (tahun depan)

Solusi 2:

Apa yang Anda tunjukkan adalah "setiap minggu". Maka kodenya adalah:

0 8 * * 6

Apakah Anda yakin perlu menjalankannya setiap dua minggu?

0 8 * * 6 expr `date +\%s` / 604800 \% 2 >/dev/null || yourCommand

Linux
  1. MySQLdump tanpa kata sandi di cronjob

  2. Bagaimana cara menginstruksikan cron untuk menjalankan pekerjaan setiap minggu kedua?

  3. Menggunakan WGET untuk menjalankan cronjob PHP

  1. Cara menjalankan crontab job setiap minggu di hari minggu

  2. Bagaimana cara mengatur pekerjaan CRON agar berjalan setiap 10 detik di Linux?

  3. bagaimana cara menjalankan cron job setiap 3 bulan?

  1. Perbedaan Antara Program Starter Systemd Dan Terminal?

  2. Linux – Jalankan Script Setiap 30 Menit Dengan Systemd?

  3. Penerusan IP =kapan dan mengapa ini diperlukan?