Saya telah melakukan sedikit riset tentang bagaimana melakukan ini, dan saya melihat tidak ada cara langsung dalam cron untuk menjalankan pekerjaan, katakanlah, setiap Kamis.
Saat ini, saya condong ke arah membuat skrip yang hanya akan berjalan setiap minggu, dan akan menyentuh file "flag" saat dijalankan, dan jika dijalankan dan file tersebut sudah ada, untuk menghapus file (dan tidak melakukan aksi dwi-mingguan).
Pertanyaan saya adalah, apakah ada cara lain yang lebih elegan atau lebih sederhana untuk mencapai tujuan ini dari skrip aksi bash yang dijalankan setiap minggu secara otomatis?
Terima kasih!
Jawaban:
Saya menggunakan bash untuk melakukan matematika karena saya malas; alihkan itu ke apa pun yang Anda suka. Saya memanfaatkan 1 Januari 1970 sebagai hari Kamis; untuk hari-hari lain dalam seminggu Anda harus menerapkan offset. Cron membutuhkan persen tanda lolos.
Pemeriksaan cepat:
Catatan Saya telah memilih waktu acak untuk menunjukkan ini akan bekerja jika dijalankan kapan saja pada hari Kamis, dan memilih tanggal yang melewati batas tahun ditambah bulan dengan 4 dan 5 Kamis.
Keluaran:
sumber
Salah satu cara mungkin menggunakan
at
utilitas jika Anda menjalankan Linux. Anda bisa meletakkan ini di akhir skrip Anda:di mana X adalah waktu Anda ingin menjalankan skrip Anda. Untuk menginisialisasi panggil saja
at
untuk waktu Anda ingin menjalankannya pertama kali dan kemudian pernyataan di atas terus memperbarui panggilan terjadwal Anda.sumber
Jika Anda dapat menggunakan
anacron
pada sistem, semuanya akan jauh lebih sederhana. Untuk menggunakananacron
Anda harus menginstalnya dan Anda juga harus memiliki akses root. Itu tidak bekerja pada sistem yang lebih lama (yaitu RHEL 5.x), versi lama ancron ONLY berjalan saat boot up. Itu bekerja dengan sistem yang lebih baru (yaitu RHEL 6.x).Dengan
anacron
, seseorang dapat menjadwalkan pekerjaan dengan cara yang lebih fleksibel, misalnya menjalankan pekerjaan X seminggu sekali. Jugaanacron
menjalankan pekerjaan saat komputer tersedia, yaitu Anda tidak perlu mempertimbangkan ketika sistem naik atau turun.Untuk menjalankan skrip setiap minggu, Anda harus menambahkan baris yang mirip dengan mengikuti ke / etc / anacrontab:
Lihatlah halaman manual untuk detailnya.
sumber
anacron
jelas merupakan solusi IMO terbersih (kecuali jika ada beberapa konsekuensi yang tidak diinginkan bagi sebagian orang).Saya tidak yakin apakah ada cara yang lebih elegan untuk mendefinisikan setiap minggu, tetapi ini mungkin cocok untuk Anda.
Ini akan meluncurkan skrip pada pukul 6 pagi pada hari Kamis pertama dan ketiga setiap bulan.
sumber
1-7,15-21,29-31
, tetapi kemudian akan berjalan kembali-ke-kembali jika ada kecocokan untuk set terakhir ...Saya akan menjalankannya setiap minggu, dan minta script memeriksa untuk melihat apakah nomor minggu adalah angka ganjil: jika ya keluar.
Ini akan membutuhkan lebih banyak pemikiran untuk bekerja dari Des hingga Jan.
Mungkin skrip mengatur file flag "last run sukses". Saat skrip diluncurkan, periksa file bendera yang terakhir diubah 14 hari yang lalu.
sumber