Kedua ekspresi tampak seperti Rabu pagi, dan hanya satu di antaranya berarti sekali. 0 10 * * 3 berjalan pada pukul 10:00 hari Rabu; * 10 * * 3 berjalan pada setiap menit jam kesepuluh, enam puluh kesempatan untuk memulai terowongan yang sama. Jika perintahnya adalah peluncur yang tidak memeriksa sesi yang ada, versi kedua bukan kesalahan penjadwalan, melainkan perulangan yang menghasilkan pemilik yang bersaing. Bacalah kolom menit sebelum membaca hal lain.

Kelima kolom adalah menit, jam, tanggal, bulan, dan hari dalam sepekan, dalam urutan itu, dan tanda bintang pada kolom pertama berarti setiap menit.

Kolom menit menentukan berapa kali

Angka di depan adalah menit, jadi 0 10 * * 3 adalah menit pertama jam kesepuluh pada hari Rabu. Menggantinya dengan tanda bintang mempertahankan jam dan hari serta menghilangkan sifat sekali-jalan, yang menghasilkan enam puluh kecocokan. Cron tidak menghapus duplikat: setiap kecocokan menjalankan perintah lagi. Ini bukan seluk-beluk cron, melainkan semantik kolom, dan rujukan penjadwal yang terpasang layak dibaca karena urutan kolom dan kolom nama pengguna opsional berbeda antara crontab pengguna dan sistem.

Ujilah dengan perintah tak berbahaya yang mencatat stempel waktunya sendiri selama sehari. Satu baris di log adalah jadwal; enam puluh baris dalam satu jam adalah pelajaran.

Apa yang dilakukan peluncuran kedua terhadap yang pertama

Peluncur yang santun menyadari koneksi sudah aktif dan tidak melakukan apa pun. Pemanggilan openvpn mentah tidak: ia membuat proses lain, percobaan lain untuk mengikat perangkat atau porta, dan rangkaian rute lain yang bersaing untuk tujuan yang sama. Di NetworkManager, permintaan aktivasi berulang untuk satu koneksi biasanya idempoten, dan itulah sebabnya masalah tetap tersembunyi sampai seseorang memakai perintah lain. Jadwal seharusnya bertanya kepada pemilik yang sudah mengelola terowongan.

Lalu tentukan arti sebuah permintaan saat koneksi sedang dibangun. Baik aktivasi ganda maupun antrean mulai yang tertunda sama-sama tidak jelas benar; pilih satu dan minta peluncur menerapkannya, alih-alih membiarkan penjadwal memutuskan secara kebetulan.

Hitung kolom sebelum perintah

Crontab pengguna dan sistem berbeda dalam hal apakah kolom nama pengguna muncul sebelum perintah. Entri yang disalin di antara keduanya entah berjalan dengan akun yang salah atau meneruskan nama pengguna sebagai kata pertama perintah. Periksa rujukan yang terpasang, bukan panduan, dan hitung kolom pada baris Anda sendiri. Entri lima kolom dengan kata keenam sebelum perintah adalah crontab sistem; baris yang sama di crontab pengguna mencoba menjalankan kata itu sebagai program.

Identitas eksekusi membawa lingkungannya. Tugas cron tidak mewarisi keyring yang terbuka, permintaan kata sandi interaktif, atau direktori kerja tempat Anda menguji.

Tunggu kesiapan, bukan jam

Peluncuran yang berhasil bukan terowongan yang berfungsi. Klien mungkin masih menyelesaikan endpoint, mengautentikasi, atau memasang rute saat tugas keluar. Setiap tugas yang bergantung harus menunggu sumber daya terlindungi yang benar-benar dibutuhkannya, dengan batas waktu dan kegagalan yang dicatat, bukan jumlah detik tetap. Perbedaan itulah yang memisahkan jadwal yang sebagian besar berhasil dari yang gagal diam-diam pada pagi yang sibuk.

Jika MFA interaktif diperlukan pada jam itu, tugas dapat meminta perhatian seseorang tetapi tidak dapat menyediakan jawabannya. Pertahankan kasus itu secara eksplisit alih-alih menyematkan kata sandi yang dapat dipakai ulang atau mencoba ulang selamanya.

Untuk aktivasi yang benar-benar sekali, gunakan mekanisme sekali-jalan yang didukung. Aturan berulang yang harus diingat dan dihapus adalah peluncuran ganda di masa depan.

Artikel terkait