Alat pengembang · Generator crontab
anacron dan cron.daily: bagaimana pekerjaan terjadwal tetap bertahan saat mesin dimatikan
· Latar belakang
cron keandalan penjadwalan
cron mengasumsikan mesin selalu hidup; anakron tidak. Posting ini menjelaskan bagaimana anacron melacak proses terakhir, bagaimana direktori cron.daily gaya Debian menggunakannya, dan cara memilih di antara keduanya.
Skenario mesin tidur berada di luar browser; pratinjau hanya mencari kandidat masa depan
ToolAcre tidak dapat mengamati apakah laptop tertidur selama 06:25. Fungsi yang dijalankan berikutnya menerima waktu mulai dan mencari ke depan, dimulai satu menit kemudian. Menit yang cocok sebelumnya tidak dikembalikan karena fitur tersebut adalah pratinjau di masa mendatang, bukan riwayat atau mesin pemulihan.
Hal ini membuat daftar tersebut berguna untuk perencanaan namun tidak ada gunanya untuk mengejar ketertinggalan. Kandidat sebelumnya yang hilang mungkin telah mencalonkan diri, dilewati, atau ditangani oleh layanan lain; browser tidak memiliki catatan eksekusi. Diagnosis perilaku waktu henti dari penjadwal yang diinstal, bukan karena ketidakhadiran dalam daftar khusus masa depan.
Perilaku cron miss-run eksternal tidak terjadi di sini
Buku kerja tersebut menegaskan bahwa cron membuang menit-menit yang terlewat. Tidak ada implementasi daemon atau pengujian uptime yang menjadi bagian dari repositori ini, sehingga klaim universal tidak terulang. Yang terbukti adalah ToolAcre sendiri tidak mengantri pekerjaan: ia menghitung tanggal di memori dan mengembalikannya ke halaman.
Penjadwal target mungkin mendokumentasikan kebijakan yang tidak dijalankan, dan pembungkus dapat menambahkan kebijakan lain. Tangkap kebijakan itu secara eksplisit. Ekspresi `0 6 * * *` yang sama dapat berpartisipasi dalam desain pemulihan yang berbeda tanpa mengubah lima nilainya.
keadaan anakron dan penundaan tidak diterapkan
Tidak ada file stempel waktu anacron, penghitung periode, atau penundaan startup di `cron.js`. Parser mengetahui bidang kalender, sedangkan pratinjau mengetahui cakrawala pencarian yang dapat dikonfigurasi. Tidak ada yang menyimpan kapan tindakan eksternal terakhir kali selesai.
Oleh karena itu, artikel ini tidak dapat menjelaskan transisi keadaan anakron secara pasti dari bukti proyek. Jika diperlukan upaya mengejar ketertinggalan, teliti dan uji fasilitas sebenarnya. ToolAcre masih dapat membuat garis cron dengan waktu tepat yang disimpan di sampingnya, namun tidak dapat memvalidasi kebijakan anakron.
sintaks anacrontab berada di luar parser lima bidang
Baris anacrontab bukanlah ekspresi cron lima bidang. Memasukkan periode, penundaan, dan pengidentifikasinya ke ToolAcre akan menggagalkan penghitungan bidang atau validasi nilai tanpa mengajarkan apa pun tentang sintaksis sebenarnya. Sasaran penjadwalan serupa tidak berarti format file dapat dipertukarkan.
Pertahankan validator asli dengan tata bahasa asli. Gunakan rute ini untuk ekspresi menit demi hari dalam seminggu dan sumber terpisah untuk konfigurasi catch-up berbasis periode. Penerjemahan harus menjaga persyaratan operasional, tidak hanya memaksakan satu bentuk teks melalui parser lainnya.
Pengkabelan cron.daily tidak dapat disimpulkan dari repositori ini
Mekanisme direktori dan penyerahan antar paket tidak ada dalam basis kode yang ditinjau. Generator tidak dapat mengetahui apakah `/etc/cron.daily` ada, runner mana yang memanggilnya atau apa yang terjadi ketika paket lain diinstal. Pengkabelan semacam itu merupakan bukti spesifik lingkungan.
Inventarisasi target sebelum memindahkan tugas. Nama direktori saja tidak mengungkapkan waktu jam dinding atau perilaku mengejar ketinggalan. Bandingkan konfigurasi layanan yang diamati dengan persyaratan, dan pertahankan ekspresi ToolAcre hanya jika pekerjaan benar-benar tetap berada di jalur cron yang kompatibel.
Batasan yang berhasil: bandingkan kandidat masa depan tanpa menjanjikan ketertinggalan
Untuk contoh harian, masukkan `0 6 * * *` dan pilih zona penerapan. Pratinjau mencantumkan hingga lima kandidat jam dinding 06:00 masa depan setelah sekarang. Jika instan awal sudah melewati 06:00 hari ini, besok menjadi hasil pertama. Itu adalah perilaku pencarian ke depan, bukan bukti kejadian pagi ini.
Gunakan daftar untuk memeriksa maksud kalender dan konversi zona. Kemudian lakukan siklus daya atau tangguhkan lingkungan pengujian yang aman sepanjang waktu yang dijadwalkan dan patuhi kebijakan penjadwal sebenarnya. Kedua eksperimen tersebut menjawab pertanyaan yang berbeda dan harus tetap didokumentasikan secara terpisah.
Perilaku pengatur waktu yang persisten tidak diverifikasi dan dihilangkan
Buku kerja tersebut menyebutkan pengaturan persisten di manajer layanan lain. Tidak ada pengurai unit atau pengujian yang mendukung pernyataan tersebut di sini. Ini mungkin merupakan penelitian eksternal yang relevan, namun modul ini tidak akan mengubahnya menjadi rekomendasi tanpa bahan sumber yang otoritatif.
Persyaratan yang terlewatkan memerlukan kriteria penerimaan yang jelas: apakah akan segera dijalankan, dilewati, digabungkan, atau dipertahankan setiap kejadian. Pilih sistem yang mendokumentasikan hasil yang diperlukan dan verifikasi. ToolAcre dapat memberikan irama cron yang digunakan sebagai garis dasar, tidak lebih.
Kesimpulan: pasangkan jadwal dengan kebijakan tidak berjalan yang diverifikasi secara terpisah
Ekspresi berulang tidak lengkap sebagai desain keandalan jika mesin mungkin tidak tersedia. Kebijakan pencocokan kalender dan kebijakan catch-up bersifat terpisah. ToolAcre mengekspos yang pertama dan dengan sengaja tidak memiliki status eksekusi yang bertahan untuk yang terakhir.
Pratinjau masa depan, catat zona, lalu uji perilaku lari yang terlewat di tujuan. Jika mekanisme lain memiliki pemulihan, dokumentasikan hal tersebut di samping ekspresi. Hindari mengatakan generator atau lima bidang menjamin percobaan ulang, karena tidak ada yang dapat mengamati bahwa proses tersebut terlewatkan.