İşin durumu başarı diyor, günlük tamamlanmış bir çalışma gösteriyor ve veriler eski ya da yok. Bu birleşim genellikle zamanlanmış işin ihtiyaç duyduğu yoldan yoksun başladığı ve akışın aşağısında bir şeyin hatayı yuttuğu anlamına gelir. Zamanında tetiklenen bir program, ağın hazır olup olmadığı hakkında hiçbir şey söylemez. Bu iki gerçek arasındaki boşluk, bu hatanın yaşadığı yerdir.

Kabul, çalışmaya aittir; bir cron dosyasının varlığına değil.

Yeşil bir çalışma tamamlanmış iş değildir

Zamanlayıcı bir sürecin başladığını ve sonra çıktığını not eder; o sürecin var olma neden olduğu kaynağa ulaşıp ulaşmadığı hakkında hiçbir fikri yoktur. Başarısız bir bağlantıyı boş sonuç olarak gören ya da bir hatayı yakalayıp sıfırla çıkan bir betik sonsuza dek sağlıklı görünecektir. Belirti kırmızı bir durum değil; eksik işe iliştirilmiş makul bir durumdur.

Nasıl denetleneceğine karar vermeden önce çalışmanın gerçekte neye ihtiyacı olduğunu adlandırın. Bir yedekleme özel DNS ve kimliği doğrulanmış bir uç nokta gerektirebilir, sadece bir tünel süreci değil.

Bağlantıyı denetleyin, arayüz adını değil

tun0 adlı bir arayüz önemli oturum olmadan var olabilir ve başka bir bağlantı bu adın sahibi olabilir. İşin bağlı olduğu belirli nesneyi denetleyin: bir profil kimliği, bir hizmet örneği veya kaynağa karşı küçük onaylı bir işlem. Denetimi zamanla sınırlı tutun ve kimlik bilgilerini süreç argümanlarından ve tanılama günlüklerinden uzak tutun.

Bağlantı kesildiğinde ortaya çıkan sonucu da tanımlayın. Sıradan bir atlama, kısa bir pencere içinde yeniden deneme ve operatörün gördüğü kaçırılmış bir son tarih üç farklı yanıttır ve yinelenen bir program aralarında seçim yapmaz.

Atlamalar ve hatalar farklı sonuçlardır

[Service]
Type=oneshot
User=worker
ExecCondition=/usr/local/libexec/check-office-path
ExecStart=/usr/local/bin/private-task

Bir systemd kurulumunda, iş yükünden önce ExecCondition= bu denetleyiciyi çalıştırır. Çıkış davranışı özeldir: sıfır devam eder, birden 254'e kadar olan kodlar birimi başarısız olarak işaretlemeden kalan başlatma komutlarını atlar ve 255 veya anormal sonlanma birimi başarısız kılar. Bu üç ayrı sinyal verir ve yalnızca denetleyicinin sözleşmesi bilinçli olarak bunlara eşlenmişse yararlıdır. Başarıyı yeniden tanımlayan ayarlar tabloyu değiştirebilir, bu yüzden eşlemeyi belgeleyin.

Atlamaları kaydetmek, tasarımı dürüst kılan şeydir. Hiçbir yerde görünmeyen atlanmış bir çalışma, başarılı olmuş bir çalışmadan ayırt edilemez ve her denetleyici hatasını sessiz bir atlama olarak görmek bozuk bir kurulumu süresiz gizler.

Tüm çalışmayı koruyun, sadece başlangıcı değil

Bir hazırlık denetimi dünyayı başlatmadan önce gözlemler; sonrasında her soketi denetlemez. Bu iş için doğrudan yol asla kabul edilebilir değilse, DNS, IPv6 ve tünelin kendi taşımasını kapsayan, sürekli uygulanan onaylı bir çıkış politikası ekleyin. Ana makinenin genel IPv6 durumunu değiştirmek, işe özgü bir politikanın yerini tutmaz.

Yeni bir olayın hâlâ çalışan bir işle çakışıp çakışamayacağına karar verin, bu kuralı iş yükünün sahibinde tutun ve veri işlemi için yeniden denemeyi güvenli hale getirin. Bağlantı kesildiğinde bir işi durdurmak işi sınırlar ama yedek trafik hakkında hiçbir şey garanti etmez.

İş akışını üç durumda kabul edin: hazır yol, kullanılamayan yol ve çalışma ortasında kayıp. Bundan azı programı sınar, işi değil.

İlgili makaleler