GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menginstruksikan cron untuk menjalankan pekerjaan setiap minggu kedua?

Jawaban

Ubah logika cron Tuesday Anda untuk mengeksekusi setiap minggu sejak zaman .

Mengetahui bahwa ada 604800 detik dalam seminggu (mengabaikan perubahan DST dan detik kabisat, terima kasih), dan menggunakan tanggal GNU:

0 6 * * Tue expr `date +\%s` / 604800 \% 2 >/dev/null || /scripts/fortnightly.sh

Selain itu

Aritmatika kalender membuat frustrasi.

Jawaban @xahtep luar biasa tetapi, seperti yang dicatat @Doppelganger dalam komentar, jawaban itu akan gagal pada batas tahun tertentu. Tak satu pun dari date penentu "minggu tahun" utilitas dapat membantu di sini. Beberapa hari Selasa di awal Januari pasti akan mengulang paritas minggu dari hari Selasa terakhir di tahun sebelumnya:05-01-2016 (%V), 02-01-2018 (%U), dan 01-01-2019 (%W) .


jawaban pilcrow bagus. Namun, ini menghasilkan skrip fortnightly.sh yang berjalan setiap genap minggu (sejak zaman). Jika Anda memerlukan skrip untuk dijalankan pada ganjil minggu, Anda dapat mengubah sedikit jawabannya:

0 6 * * Tue expr \( `date +\%s` / 604800 + 1 \) \% 2 > /dev/null || /scripts/fortnightly.sh

Mengubah 1 menjadi 0 akan memindahkannya kembali ke minggu genap.


Bagaimana dengan ini, itu menyimpannya di crontab meskipun tidak ditentukan secara persis di lima kolom pertama:

0 6 * * Tue expr `date +\%W` \% 2 > /dev/null || /scripts/fortnightly.sh

Linux
  1. Bagaimana Cara Menjalankan `date` Di Dalam Pekerjaan Tab Cron?

  2. Cara Menyiapkan Pekerjaan Cron

  3. Cara menjalankan pekerjaan cron pada hari-hari tertentu dalam seminggu

  1. Cara menjalankan tugas cron setiap satu jam dan 10 menit

  2. Cara menjalankan crontab job setiap minggu di hari minggu

  3. bagaimana cara menjalankan cron job setiap 3 bulan?

  1. Cara Mengatur Pekerjaan Cron Di TrueNAS

  2. Bagaimana cara mengatur tugas cron untuk menjalankan yang dapat dieksekusi setiap jam?

  3. Bagaimana saya bisa menjadwalkan tugas cron yang berjalan setiap 10 detik di linux?