Kimsenin konuşmadığı arıza modu: zamanlanmış bir görev çalışmayı durdurur ve hiçbir şey sizi uyarmaz. Windows Task Scheduler yeşil “Hazır” durumunu gösterirken, alttaki script üç haftadır eksik bir bağımlılıkta sessizce çıkıyor. Ev sunucusundaki bir cron işi, zamanlama da bir OS yükseltmesinden kurtulur ama ortamda değil ve her gece çalışması gereken yedekleme dosya yazılmasını durdurur. Sistem hiçbir şey fırlatılmadığı için bir şeyin yanlış olduğunu düşünmez. Yedekleme sadece kayıp oldu.
2026’da Linux, Windows ve macOS’ta sessiz zamanlanmış görev hatalarını yakalamak için 7 en iyi uygulamayı test ettik. Liste, işinizden bir ping bekleyen ve sessiz kaldığında uyaran dead-man-switch hizmetlerini, push mode heartbeat’lerini de işleyen genel uptime izleyicilerini, deseni grafik çizmenizi sağlayan metrik ihracatçılarını ve ham sinyali gerçekten okuduğunuz bir uyarıya dönüştüren yerel araçları kapsar.
Zamanlanmış görev izleyicisinde ne arayacaksınız
Şu şekilde bir araç seçin:
- Sadece “çıkış kodunun sıfır olup olmadığını kontrol edin” değil, dead-man switch kullanır. Konu, işin hiçbir şekilde çalışmadığı.
- Zamanlama toleransını akılcı bir şekilde işler. 03:00’de çalışan bir işin uyarmadan önce birkaç dakika kayma toleransı olmalıdır; her dakika çalışan bir işin saat cinsinden toleransı olmamalıdır.
- Kontrol ettiğiniz bir kanala uyarılar gönderir. E-posta, kesinti e-posta sunucunuzda olana kadar iyidir; en az bir e-posta dışı kanal (push hizmeti, Discord webhook, SMS) ekleyin.
- İzlediği hosttan bağımsız olarak çalışır. İzlediği kutuyla beraber ölen bir izleyici, izleyici değildir.
- İş başına ödeme gerektirmez. Evlerde genellikle yirmi veya otuz zamanlanmış görev vardır; görev başına faturalandırma modeli ev altyapısını kurumsal bir maliyet merkezine dönüştürür.
Hızlı karşılaştırma
| Uygulama | En iyi | Yaklaşım | Self-hosted | Ücretsiz tier |
|---|---|---|---|---|
| Healthchecks.io | Self-hosted seçeneği ile Dead-man switch | Push heartbeat | Evet | Evet, 20 kontrol |
| Cronitor | İş başına istatistikler ile tam cron telemetrisi | Push + wrapper | Hayır | Evet, 5 monitor |
| Dead Man’s Snitch | Orijinal zamanlanmış görev kalp atışı | Push heartbeat | Hayır | Evet, 1 snitch |
| Uptime Kuma | Push modu ile Self-hosted uptime izleyici | Pull + push | Evet | Ücretsiz, self-hosted |
| Prometheus Node Exporter | Systemd timer durumu için metrikler | Pull metrikler | Evet | Ücretsiz |
| systemd | Linux’ta yerel arıza algılaması | Yerel | Evet | Ücretsiz |
| Gotify | Self-hosted push bildirim sunucusu | Push server | Evet | Ücretsiz |
Neden “görev çalıştı” “görev çalıştı” ile aynı değil
Çoğu zamanlayıcının kullandığı zihinsel model “işlem sona erdi mi?” ve gereken zihinsel model “sonuç gerçekleşti mi?” Kaynak dizini boş olduğu için başarıyla sona eren bir yedekleme komut dosyası, çalışan bir yedekleme değildir. Ağ çevrimdışı olduğu ve yeniden deneme döngüsü sessizce pes ettiği için başarıyla sona eren bir eşitleme, çalışan bir eşitleme değildir. Daemon kapalı olduğu ve istemci boş yanıt döndürdüğü için başarıyla sona eren bir rebuild-search-index görevi, çalışan bir yeniden oluşturma değildir.
Düzeltme iki katmanlı: görev yalnızca gerçek çalışmasını tamamladıktan sonra (sadece başlamadıktan sonra değil) bir heartbeat gönderir ve izleyici heartbeat kaybolduğunda uyarır. Zamanlama yığınındaki başka hiçbir şey “sessizce hiçbir şey yapmadığı” modunu yakalamazsa. Task Scheduler olmaz. Cron olmaz. Windows Event Log olmaz.
Uygulamalar
1. Healthchecks.io — self-hosted seçeneği ile en iyi dead-man switch
Healthchecks.io dead-man-switch deseninin referans uygulamasıdır. Her zamanlanmış görev, benzersiz bir URL alır, görev başarılı çalıştırılmasının sonunda bu URL’ye curl’ü tetikler ve Healthchecks, ping beklenen pencerede gelmezse uyarır. Kontrol başına ödemesiz dönem, ping-with-exit-code (yani curl $URL/fail kontrolü açıkça başarısız olarak işaretler) ve basit bir aralık veya tam cron ifadesi olarak ifade edilen kontrol başına zamanlamalar. Slack, Discord, PagerDuty, Gotify, ntfy, e-posta, SMS, webhook ve yaklaşık yirmi diğer uyarı kanalı.
Nerede kısa kalır: Barındırılan ücretsiz tier 20 kontrolle sınırlıdır; büyük otomasyon yüzeyleri olan evler bunu aşacaktır. Self-hosting bunu düzeltir ancak bakılması gereken bir hizmet ekler.
Platformlar: Self-hosted için herhangi bir Linux/Docker ana bilgisayarı. Barındırılan tier HTTP isteği yapabilen her şeyden çalışır.
İndir: Healthchecks.io install
Özet: Ev sunucusundaki zamanlanmış görev heartbeat’leri için doğru varsayılan.
2. Cronitor — iş başına istatistikler ile en iyi tam cron telemetrisi
Cronitor heartbeat’in ötesine geçer ve tam çalışma zamanı resmini yakalar — işin ne kadar sürdüğü, çıkış kodu, stdout ve stderr, çalıştırmalar arasında karşılaştırmalı grafikler ve bunlardan herhangi birinin değişmesi durumunda uyarılar. Cronitor CLI’sinde işi sarın veya başlat, bitiş ve başarısızlık sırasında URL’ye doğrudan ping yapın. Pano takımlara yöneliktir; özelliklerin yarısını kullanan bir ev, sadece çalışma zamanı grafiklerinden bile değer elde edecektir.
Nerede kısa kalır: Sadece barındırılan — self-hosted yolu yok. Ücretsiz tier 5 monitördür, bu meşgul bir sunucuda hızlı bir şekilde doldurulur.
Platformlar: Giden HTTPS yapabilen herhangi bir ana bilgisayar. Linux, macOS, Windows için CLI wrapper.
İndir: Cronitor download
Özet: İş başına çalışma zamanı grafikleri istediğiniz ve barındırılan bir hizmetle rahat olduğunuz zaman doğru seçim.
3. Dead Man’s Snitch — en iyi orijinal kalp atışı hizmeti
Dead Man’s Snitch deseni popülerleştirdi ve sessiz bir hatasıyakalamak için en kolay yollardan biri olmaya devam ediyor. Bir snitch oluşturun, bir URL alın, işin bu URL’ye çarpmasını sağlayın, aralık içinde URL ping’e tıklanmadığında bir e-posta alın. Bu tüm ürün. “Bundan daha karmaşık olması gereken bir şey var mı?” doğru soru olduğunda, Dead Man’s Snitch dürüst cevaptır.
Nerede kısa kalır: Ücretsiz tier bir snitch’tir — bir kritik işi korumak için yeterli ve başka hiçbir şey değil. Özellik derinliği Healthchecks ve Cronitor’dan geri kalır.
Platformlar: Giden HTTPS yapabilen herhangi bir ana bilgisayar.
İndir: Dead Man’s Snitch signup
Özet: “Yedekleme çalışmadı” uyarısı korumanız gereken tek sonuç olduğunda doğru seçim.
4. Uptime Kuma — push modu ile en iyi self-hosted uptime izleyici
Uptime Kuma, HTTP ve TCP sondalarının yanı sıra uygun bir push modunu büyüten self-hosted uptime izleyicidir. Nokta-ve-tıkla arayüzü, insanların önem verdiği çoğu uyarı kanalı, denetim başına durum sayfaları ve Healthchecks ile aynı “kontrolün X saniye içinde itildiği” modeli. Ev sunucusu zaten medya yığını için Uptime Kuma çalıştırıyorsa, aynı panotaya cron işi heartbeat’leri eklemek birkaç tıklamaya mal olur.
Nerede kısa kalır: Push modu desteği pull-mode sondalarından daha yeni ve daha kaba kenarların olduğu yerdir. Cron-heartbeat kullanım durumunda Healthchecks’ten daha az uzmanlaşmış.
Platformlar: Linux (Docker), Windows, macOS.
İndir: Uptime Kuma install
Özet: Ev zaten Uptime Kuma çalıştırıyorsa ve başka bir pano istemiyorsa doğru seçim.
5. Prometheus Node Exporter — systemd timer durumu için en iyi metrikler
Prometheus Node Exporter, systemd birimi ve timer durumu için bir toplayıcı gönderir. Prometheus ve Alertmanager ile birleştirildiğinde, “bu timer en son ne zaman başarıyla çalıştı,” “son N dakika içinde başarılı çalıştırma yok,” grafik oluşturabilir ve sistem genelinde metriklerle (CPU, disk, ağ) ilişki kurabilirsiniz. Bu, endüstri gücü yaklaşımıdır; bir ev için overkill, zaten Prometheus çalıştıran biri için tam doğru şekil.
Nerede kısa kalır: Yararlı olması için tüm Prometheus yığınını gerektirir — bu gerçek altyapı, beş dakikalık kurulum değil. Timer toplayıcı için systemd-özgü; cron işleri farklı bir yaklaşım gerektirir.
Platformlar: Linux, Windows, macOS, FreeBSD.
İndir: Prometheus Node Exporter releases
Özet: Prometheus zaten ev laboratuvarında metrik depolama olduğunda doğru seçim.
6. systemd — Linux’ta en iyi yerel arıza algılaması
systemd modern Linux’ta, çoğu cron göçmeni fark etmekten daha fazla yerleşik arıza işleme vardır. OnFailure= olan bir birim başarısız olduğunda başka bir birimi tetikler, bu bir mail komut dosyası, bir webhook veya Healthchecks’i ping yapan bir komut dosyası olabilir. systemctl list-timers zamanlamayı ve son çalıştırmayı gösterir ve systemctl status <unit> çıkış kodunu ve günlük tail’ini gösterir. Systemd zamanlayıcılarında zaten olan biri için izlemenin yarısı zaten kutuda.
Nerede kısa kalır: Sadece işlem başarısız olduğunu söyler, sonuç başarısız olmadığını söylemez. Başarıyla biten ancak yararlı bir şey yapmayan bir yedekleme komut dosyası, systemd’ye yeşil görünür.
Platformlar: Linux (systemd tabanlı dağıtımlar).
İndir: systemd resources
Özet: Systemd zamanlayıcıları çalıştıran herhangi bir Linux sunucusunda doğru minimum.
7. Gotify — en iyi self-hosted push bildirim sunucusu
Gotify, herhangi bir HTTP isteğini Android push bildirimine dönüştüren küçük Go sunucusudur. Kendi başına arızaları algılamaz; yukarıdaki araçlardan herhangi biri ile birleştirildiğinde, uyarıların Firebase Cloud Messaging’e veya üçüncü taraf bir bildirim hizmetine bağlı olmadan bir telefona gerçekten nasıl ulaştığı hale gelir. Uyarı kanalının izlenen sunucular kadar özel olması gereken evler için idealdir.
Nerede kısa kalır: Kendi başına bir monitor değil. Android uygulamasının alıcı telefonlara yüklenmesi gerekir; iOS desteği Gotify’ın kendi uygulaması yerine ntfy veya benzerine dayanır.
Platformlar: Linux (Docker), Windows, macOS, FreeBSD.
İndir: Gotify install
Özet: Self-hosted uyarı yığını için doğru son mil push bildirim sunucusu.
Doğru olanı seçme
- Bugün çalışan bir dead-man switch istiyorsanız: Healthchecks.io (20 denetimin ötesine büyüdüğünde self-host).
- İş başına çalışma zamanı telemetrisi istiyorsanız ve barındırılan bir hizmetle rahat oluyorsanız: Cronitor.
- Sadece bir kritik işi korumak istiyorsanız: Dead Man’s Snitch.
- Ev zaten Uptime Kuma çalıştırıyorsa: Uptime Kuma.
- Prometheus zaten metrik depolaması ise: Prometheus Node Exporter.
- Linux sunucusu systemd zamanlayıcıları çalıştırıyorsa ve yerleşik izleme istiyorsanız: systemd.
- Uyarıların üçüncü taraf push hizmeti üzerinden geçmeden ev telefonlarına ulaşmasını istiyorsanız: Gotify.
Çoğu ev laboratuvarı için, çalışan kombinasyon Healthchecks (self-hosted) olarak dead-man switch, telefon itişi ve e-posta fallback için Gotify’a bağlı. Systemd zamanlayıcısı olarak çalışan her şey, başarısızlık durumunda aynı Healthchecks uç noktasına ping yapan bir OnFailure= birimi alır, böylece iki sinyal korelasyon kurar.
SSS
Heartbeat ile health check arasındaki fark nedir?
Heartbeat işin “ben çalıştım ve başarılı oldum” demesidir. Health check, hizmetin yanıt verip vermediğini görmek için hizmeti araştıran bir izleyicidir. Heartbeat’ler sessiz zamanlanmış görev hatalarını yakalar; health checkler çalışma zamanı hizmet hatalarını yakalar. Her ikisini istersiniz.
Uyarıları nereye göndermeliyim?
İzlenen makinenin dışında bir yere. E-posta fallback olarak iyidir ancak tek kanal olmamalıdır — e-postayı çalıştıran makine başarısız olan makineyse, uyarı asla gitmez. Yüksek öncelikli işler için e-posta ve telefon itişi (ntfy, Gotify, Pushover) ve sohbet kanalı (Discord webhook, Slack) ekleyin.
Windows Task Scheduler işine nasıl heartbeat eklerim?
Gerçek görevi çalıştıran, çıkış kodunu kontrol eden ve yalnızca her şey başarılı olduğunda Healthchecks veya Cronitor URL’sine karşı Invoke-WebRequest çağıran küçük bir PowerShell komut dosyasında eylemi sarın. Task Scheduler’ın “bunu tamamlandığında çalıştır” kancası başarı ve başarısızlığı temiz bir şekilde ayırt etmez, bu nedenle komut dosyasında yapın.
Systemd gerçekten Linux izleme için yeterli midir?
“Süreç kilidi mi?” için — evet. “Sonuç gerçekleşti mi?” için — hayır. Systemd’nin OnFailure= öğesini, işin gerçek çalışması bittikten sonra gönderilen heartbeat ile birleştirerek tam resim elde edin.
Yine de cron’u izlemeliyim mi?
Evet. Cron çalışıyor ve sağlıklı olabilir, bireysel işler sessizce ateşlemeyi durdurur (kötü crontab sözdizimi, izin değişikliği, eksik kullanıcı). Uptime Kuma veya Healthchecks, ev sunucusundaki cron’un son çalıştırılma saatini de izleyebilir; bu eski olursa, cron’un dikkat etmesi gereken şeydir.