Bagaimana cara membuat cron dijalankan setiap hari Minggu lainnya pada hari Minggu LAINNYA?

10

Saya memiliki pekerjaan cron yang berjalan pada 0 0 * * 0/2 - yaitu setiap hari Minggu lainnya. Itu hanya berjalan sekarang, misalnya. Namun, saya ingin menjalankannya pada hari Minggu lainnya - Minggu depan, bukan yang ini. Cara lain untuk menggambarkannya: Saya menganggap itu berjalan pada hari Minggu genap, tetapi saya ingin itu berjalan pada hari Minggu bernomor ganjil.

Saya tidak melihat apa pun di "man 5 crontab" yang akan membantu saya dengan ini, jadi saya kira saya harus kembali menjalankan cronjob di 0 0 * * 0 dan kemudian melakukan sesuatu dalam perintah yang saya jalankan untuk memeriksa hari Minggu yang mana adalah. Adakah yang bisa membantu saya dengan tipuan baris perintah yang cocok untuk ini?

ETA: telah menyadari bahwa 0/2 saya tidak melakukan apa yang awalnya saya pikirkan (setiap minggu kedua) sama sekali. Ini berjalan setiap hari Minggu, selama hari itu dalam seminggu dapat dibagi oleh dua, yang tentu saja itu. Doh. Bagaimanapun, persyaratan mendasar tetap: menjalankan perintah pada hari Minggu bernomor ganjil.

Skud
sumber
"bernomor ganjil" seperti pada "Minggu Pertama, Ketiga, dan Kelima"?
voretaq7
1
Tidak, seperti pada tanggal 1, 3, 5, 7, ... 49, minggu ke-51 tahun ini. Dengan kata lain, setiap dua minggu, pada hari Minggu yang jatuh dalam minggu ganjil dalam setahun.
Skud
Maaf - cron tidak akan melakukannya untuk Anda. Anda harus memeriksa skrip Anda apakah minggu ini tepat untuk Anda. (Juga, jika Anda ingat saya dari Tempat Tertentu - gelombang HI !!! )
Jenny D

Jawaban:

3

Saya tidak akan berpura-pura mencoba tugas khusus ini sendiri, tetapi pertanyaan Stack Overflow ini memiliki beberapa jawaban yang menunjukkan potensi tipuan baris perintah: /programming/350047/how-to-instruct-cron-to- melaksanakan-pekerjaan-setiap-minggu kedua

nmjk
sumber
Tidak satu pun dari mereka yang menjalankan cron pada minggu bernomor ganjil. Mereka semua hanya melakukan satu sama lain. Beberapa cara yang sangat eksotis dan "kreatif" yang tidak akan saya rekomendasikan juga.
Chris S
Jawaban terpilih terlihat berjalan setiap minggu dan kemudian mengandalkan tipuan baris perintah untuk menentukan apakah itu minggu yang tepat.
nmjk
1
Ya, tapi modulo 2, yang berarti akan berjalan pada minggu genap. Dimungkinkan untuk menumpuk banyak evalblok untuk menambahkan satu dan kemudian melakukan modulo 2. Itu yang paling buruk, tapi saya kira itu mungkin berhasil.
Chris S
1
Dari jawaban yang ditautkan, ini sepertinya memiliki potensi: date +\%W\% 2> / dev / null || terserah ... Namun, untuk mendapatkan minggu bernomor ganjil , aku ingin melakukan "&& apapun" daripada ||
Skud
1
Jadi, minta klarifikasi. Apakah Anda ingin menentukan penghitungan "setiap minggu ganjil" dari minggu ke tahun, atau penghitungan berdasarkan minggu ke bulan? Saya cukup yakin yang terakhir ini mungkin tetapi saya harus menemukan beberapa cuplikan lama yang saya gunakan di masa lalu.
nmjk