Cron Job Alternatifleri Hangi Zamanlayıcıyı Seçmelisiniz?

KarşılaştırmaYayın: Güncellendi: 17 dk okumaHazırlayan: cronjob.com.tr Editörleri

Geleneksel UNIX cron servisi yarım asra yakın süredir periyodik arka plan işlerinin vazgeçilmez aracı olmuştur. Tek bir satır ile gece yarısı yedek alma veya saat başı rapor üretme pratikliği sağlasa da, modern bulut mimarileri, mikroservisler ve dağıtık sistemler geliştikçe cron altyapısının eksiklikleri belirginleşmiştir. Kaçırılan çalışmaların telafi edilememesi, bağımlılık yönetiminin bulunmaması ve merkezi gözlemlenebilirlik eksikliği geliştiricileri alternatif çözümler aramaya yöneltir.

Bu rehberde, geleneksel cron yerine değerlendirebileceğiniz sistem düzeyindeki modern zamanlayıcıları, masaüstü veya kesintili çalışan sunucular için özel araçları, uygulama içi dağıtık kuyrukları ve bulut tabanlı webhook zamanlayıcılarını derinlemesine inceliyoruz. Temel kavramları tazelemek isterseniz öncelikle cron job nedir rehberimize göz atabilirsiniz.

Neden Cron Alternatifi Aranır? (Geleneksel Cron'un Sınırları)

Klasik crontab servisi yerel sunucu ortamında çalışır ve her dakikada bir /etc/crontab veya kullanıcı tablolarını tarar. Ancak üretim sistemlerinde karşılaşılan pek çok operasyonel gereksinim cron mimarisinin sınırlarını aşar:

Derinlemesine Karşılaştırma Tablosu: Cron vs Systemd Timers vs Anacron vs Webhook Cron

Kısa yanıt: Tek bir Linux sunucusunda kalıcıyorsanız systemd timer, makine sık kapanıyorsa anacron, görev uygulamanın koduna ve veritabanına dokunuyorsa kuyruk tabanlı bir zamanlayıcı, tetiklenecek şey bir HTTPS adresiyse web cron en dengeli seçimdir.

Aşağıdaki karşılaştırma tablosu, popüler zamanlama yaklaşımlarını mimari yeteneklerine, hassasiyetlerine ve operasyonel maliyetlerine göre özetlemektedir:

Çözüm Türü Zamanlama Hassasiyeti Kaçırılan Görevi Telafi Bağımlılık Yönetimi Merkezi İzleme En Uygun Senaryo
Klasik Cron 1 Dakika Yok (Sessizce atlar) Yok Yok (Yerel syslog) Tekil sunucularda basit yerel kabuk betikleri
Systemd Timers Varsayılan AccuracySec=1 dakika; ayarlanabilir Var (Persistent=true) Var (After=, Requires=) Yerel journal (journalctl) Modern Linux sunucularda servis bağımlı yerel işler
Anacron 1 Gün (Günlük/Haftalık) Var (Açılışta çalıştırır) Kısıtlı (Gecikme süresi) Yok (Yerel spool) Sürekli açık kalmayan dizüstü ve ofis sunucuları
At Komutu 1 Dakika Var (atd açılınca gecikmiş işi çalıştırır) Yok Yok Gelecekte tek bir defa çalışacak ertelenmiş işler
Uygulama İçi (Celery/BullMQ) Milisaniye Var (Kuyruk ve retry) Var (Kod seviyesinde) Var (Web dashboard) ORM erişimi ve retry gerektiren mikroservis görevleri
Web Cron (cronjob.com.tr) 1 Dakika (60 sn) Telafi iddiası yok; HTTP hataları için e-posta ve log Görevler arası bağımlılık yönetimi yok Var (7 günlük kayıt paneli) API uç noktaları, webhook'lar ve sunucusuz mimariler

Alternatif 1: Linux Systemd Timers (Modern Sistem Standardı)

Ubuntu, Debian, CentOS, RHEL ve Arch Linux dahil olmak üzere pek çok güncel Linux dağıtımı varsayılan başlatma sistemi olarak systemd kullanır. Systemd zamanlayıcıları (timers), crontab'a doğrudan alternatif olarak geliştirilmiştir ve sistem yöneticilerine çok daha ayrıntılı kontrol sunar.

Systemd timer mimarisinde iki farklı birim (unit) dosyası birlikte çalışır: görevin ne yapacağını tanımlayan bir .service dosyası ve bu servisin ne zaman tetikleneceğini belirleyen bir .timer dosyası. Bu ayrım sayesinde bir görevi zamanlayıcıdan bağımsız olarak systemctl start servisim.service komutuyla istediğiniz an elle test edebilirsiniz.

Systemd timer'ların sağladığı başlıca avantajlar şunlardır:

.service ve .timer Birimlerinin Oluşturulması

Systemd timer kurulumu iki dosya hazırlamayı gerektirir. İlk olarak görevi yürüten servis dosyasını /etc/systemd/system/cleanup.service yolunda oluşturun:

[Unit]
Description=Gecici Dizin Temizleme Servisi
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/find /tmp -type f -mtime +7 -delete

Ardından bu servisi her gün saat 04:00'te tetikleyen /etc/systemd/system/cleanup.timer dosyasını tanımlayın:

[Unit]
Description=Gunluk Temizlik Zamanlayicisi

[Timer]
OnCalendar=*-*-* 04:00:00
Persistent=true

[Install]
WantedBy=timers.target

Dosyaları kaydettikten sonra systemd daemon'ını yenileyip zamanlayıcıyı etkinleştirin:

sudo systemctl daemon-reload
sudo systemctl enable --now cleanup.timer

Sistemdeki tüm aktif zamanlayıcıların sonraki çalışma vaktini, kalan süreyi ve tetikleyeceği birimi doğrulamak için şu komutu çalıştırabilirsiniz:

systemctl list-timers --all

Bu komutun çıktısında yer alan NEXT sütunu görevin sonraki tetiklenme vaktini, LEFT sütunu kalan süreyi, LAST ve PASSED sütunları ise önceki çalışma zamanını net olarak gösterir.

Alternatif 2: Anacron (Sürekli Açık Olmayan Sistemler İçin)

Anacron, sürekli 7/24 çalışmayan masaüstü bilgisayarlar, dizüstü cihazlar ve mesai saatleri dışında kapatılan sunucular için özel olarak tasarlanmıştır. Standart cron bir arka plan süreci (daemon) olarak bellekte beklerken, anacron genellikle sistem açılışında veya belirli aralıklarla çalışıp görevleri kontrol eder.

Anacron yapılandırması /etc/anacrontab dosyasında tutulur ve sözdizimi standart crontab'dan farklıdır. Zaman aralıkları dakika veya saat cinsinden değil, yalnızca gün bazında belirtilir. Görev tanımı dört alandan oluşur: periyot (gün), gecikme (dakika), iş tanımlayıcısı ve çalıştırılacak komut.

# /etc/anacrontab ornegi
# periyot(gun)  gecikme(dk)  is-kimligi       komut
1               10           gunluk.yedek     /usr/local/bin/backup-daily.sh
7               20           haftalik.rapor   /usr/local/bin/weekly-report.sh

Yukarıdaki örnekte sistem açıldığında anacron /var/spool/anacron/gunluk.yedek dosyasındaki son çalışma tarihini kontrol eder. Son çalışmadan itibaren en az bir takvim günü geçmişse, anacron başladıktan 10 dakika sonra (sistemin açılış yükü azaldığında) yedekleme betiğini başlatır. Bu sayede dizüstü bilgisayarınız gece kapalı olsa bile sabah açıldığında kaçırılan yedekleme güvenle tamamlanır.

Alternatif 3: Uygulama İçi Zamanlayıcılar (Celery Beat, BullMQ, Hangfire)

Kısa yanıt: Görev uygulamanın ORM modellerine, servis katmanına veya iş mantığına doğrudan dokunuyorsa zamanlamayı uygulamanın içine taşıyın; dışarıdan kabuk komutu çağırmak bu erişimi sağlamaz ve ortam farkları yüzünden kolayca kırılır.

Modern web uygulamalarında zamanlanmış görevler genellikle veritabanı modellerine, harici API kimlik doğrulayıcılarına ve iş mantığına doğrudan erişim gerektirir. Bu senaryolarda kabuk komutu çalıştırmak yerine uygulama katmanı içinde çalışan zamanlayıcılar tercih edilir:

Uygulama içi zamanlayıcıların en büyük dezavantajı işletim maliyetidir. Seçilen araca uygun kuyruk veya veritabanı arkalığının ayakta tutulması gerekir. Ayrıca uygulamanın bellek sızıntıları (memory leak) yaşaması durumunda zamanlayıcı süreci çökebilir ve tüm periyodik işler durabilir.

Alternatif 4: Bulut ve Web Tabanlı Zamanlayıcılar (cronjob.com.tr)

Kısa yanıt: Tetiklenecek şey zaten bir HTTPS uç noktasıysa zamanlamayı bulut tarafına taşıyın; sunucuda daemon kurmazsınız, taşınma ve ölçekleme sırasında zamanlama ayarı baştan yapılmaz.

Sunucunuzda crontab yapılandırma yetkiniz yoksa (örneğin kısıtlı paylaşımlı hosting veya cPanel ortamlarında), sunucusuz (serverless) AWS Lambda ve Google Cloud Functions kullanıyorsanız veya uygulamanız mikroservis mimarisindeyse en temiz alternatif dış web tabanlı cron servisleridir. AWS ve Google Cloud'un kendi zamanlayıcıları da benzer modeli sunar: AWS'de cron işi tanımlamayı ve Google Cloud Scheduler kurulumunu anlatan rehberlerimiz bu platformlarda kalmayı planlayanlar için hazırlanmıştır. Edge ağı üzerinde çalışan Cloudflare projelerinde ise Cloudflare Workers cron tetikleyicisi zamanlamayı wrangler.toml dosyası üzerinden tanımlar.

Harici bir web cron servisi sunucunuza SSH ile bağlanmaz; bunun yerine belirlediğiniz periyotta uygulamanızın güvenli HTTPS API uç noktasına bir HTTP isteği (GET, POST, PUT vb.) gönderir. Görev, HTTP isteğini karşılayan web uygulamanızın çalıştığı sunucuda işlenir.

Bu yaklaşımın sunduğu temel avantajlar:

Gerçek Senaryo: Depo Tabanlı Zamanlama (GitHub Actions ve GitLab)

Dağıtımınız zaten bir Git deposu üzerinden yapılıyorsa zamanlamayı da depoya taşımak pratik bir ara yoldur: ifade sürüm takibindedir, kod incelemesinden geçer ve yeni bir sunucuya taşınırken elle kopyalanmaz. İki yaygın kullanım GitHub Actions'ta zamanlanmış workflow kurmaktır ve GitLab pipeline schedule tanımlamaktır. GitHub Actions schedule ifadeleri varsayılan olarak UTC'dir; GitLab'da pipeline schedule oluştururken saat dilimi (Cron timezone) seçilir. Türkiye saatiyle 08:30 için GitHub'da 30 5 * * *, GitLab'da Europe/Istanbul seçilerek 30 8 * * * kullanılır.

GitHub tarafında tetikleme, workflow dosyasındaki on.schedule anahtarıyla tanımlanır. Aşağıdaki örnek iş günleri Türkiye saatiyle 08:30'da bir rapor uç noktasını çağırır; kimlik bilgileri depo ayarlarındaki Secrets içinde tutulur:

# .github/workflows/stok-raporu.yml
name: Stok raporu
on:
  schedule:
    - cron: "30 5 * * 1-5"   # UTC 05:30 = Turkiye saatiyle 08:30
jobs:
  rapor:
    runs-on: ubuntu-latest
    steps:
      - name: Rapor uc noktasini cagir
        run: |
          curl --fail-with-body -X POST "$RAPOR_URL" \
            -H "Authorization: Bearer $RAPOR_TOKEN"
        env:
          RAPOR_URL: ${{ secrets.RAPOR_URL }}
          RAPOR_TOKEN: ${{ secrets.RAPOR_TOKEN }}

GitLab'da cron ifadesi dosyada değil arayüzde tanımlanır: proje menüsünden Build > Pipeline schedules ekranında saat girilir ve isteğe bağlı saat dilimi seçilir. Pipeline'daki işin yalnızca bu zamanlanmış çalıştırmalarda koşması için kural eklenir:

# .gitlab-ci.yml - yalnizca zamanlanmis boru hattinda calisir
stok-raporu:
  script:
    - 'curl --fail-with-body -X POST "$RAPOR_URL" -H "Authorization: Bearer $RAPOR_TOKEN"'
  rules:
    - if: '$CI_PIPELINE_SOURCE == "schedule"'

Bu model günlük rapor üretimi, bağımlılık güncelleme ve geçici ortam temizliği gibi günde birkaç kez çalışacak işlere uyar; dakikalık izleme veya müşteriye dönük tetikleme için tasarlanmamıştır. Ayrıca GitHub, yoğun saatlerde schedule tetiklemelerini geciktirebilir ve herkese açık (public) depolarda 60 gün depo etkinliği olmazsa zamanlanmış workflow'ları otomatik devre dışı bırakır; kesin saat kritik olan işlerde harici HTTP zamanlayıcı daha öngörülebilir davranır.

Gerçek Kod Örnekleri

Aşağıda farklı ihtiyaçlara yanıt veren iki temel alternatifin çalışan yapılandırma örnekleri yer almaktadır.

1. Systemd ile Günlük Log Temizliği:

Aşağıdaki servis birimi /var/log/app dizininde 14 günden eski logları siler:

# /etc/systemd/system/app-log-clean.service
[Unit]
Description=Eski Uygulama Loglarini Temizleme Servisi

[Service]
Type=oneshot
ExecStart=/usr/bin/find /var/log/app -name "*.log" -type f -mtime +14 -delete
StandardOutput=journal
StandardError=journal

Bu servisi her gece 03:15'te çalıştıracak timer birimi:

# /etc/systemd/system/app-log-clean.timer
[Unit]
Description=Eski Loglari Gece Temizleme Zamanlayicisi

[Timer]
OnCalendar=*-*-* 03:15:00
Persistent=true
RandomizedDelaySec=300

[Install]
WantedBy=timers.target
İpucu: RandomizedDelaySec=300 yönergesi görevin başlangıç saatine 0 ile 5 dakika arasında rastgele bir gecikme ekler. Bu sayede aynı anda tetiklenen yüzlerce sunucunun depolama alanına aynı saniyede yük bindirmesi engellenir.

2. Tek Seferlik İleri Tarihli İşler İçin 'at' Komutu:

Linux sistemlerinde yinelenen bir takvim gerektirmeyen, yalnızca gelecekte belirli bir anda tek seferlik çalışacak işler için at komutu kullanılır. Örneğin 20 dakika sonra ağır bir arşivleme betiğini çalıştırmak için:

# 20 dakika sonra calisacak komutu zamanlama
echo "/usr/local/bin/create-archive.sh" | at now + 20 minutes

# Sirada bekleyen isleri listeleme
atq

# Bekleyen belirli bir isi iptal etme (ornek id: 4)
atrm 4

Zamanlayıcı Kurulumunu Doğrulama ve Sorun Giderme

Kısa yanıt: Hangi zamanlayıcıyı seçerseniz seçin doğrulama sırası aynıdır; önce zamanlamanın sisteme kayıtlı olduğunu, sonra görevi elle çalıştırabildiğinizi, en son da logda gerçekten tetiklendiğini kontrol edin. Bu üç adım, "çalışmıyor" şikayetlerinin büyük kısmını dakikalar içinde ayıklar.

Test edilen ortam: Bu rehberdeki komutlar Ubuntu 24.04 LTS (systemd 255) üzerinde Debian cron 3.0pl1, anacron 2.3, at 3.2.5 ve PHP 8.3 CLI ile Ekim 2026'da doğrulanmıştır. RHEL/CentOS türevlerinde servis adı crond, cron kayıtları /var/log/cron dosyasındadır.

Aşağıdaki tablo, geçiş sonrası en sık görülen belirtileri, olası nedenleri ve tek satırlık kontrol komutlarını bir araya getirir:

Belirti Olası neden Kontrol komutu Çözüm
crontab kaydı var, hiçbir görev çalışmıyor Cron servisi durdurulmuş veya devre dışı systemctl status cron sudo systemctl enable --now cron ile başlatın
Görev çalışıyor ama çıktı hiçbir yere gitmiyor Çıktı e-posta olarak gönderiliyor, MTA kurulu değil grep CRON /var/log/syslog Çıktıyı dosyaya yönlendirin: komut >> /var/log/gorev.log 2>&1
Komut elle çalışıyor, cron'dan çalışmıyor Cron'un dar PATH'i; yorumlayıcı yolu farklı env -i /bin/sh -c 'which php' Mutlak yol kullanın; gerekirse PATH'i crontab başında tanımlayın
Timer, systemctl list-timers çıktısında yok daemon-reload yapılmamış veya timer etkin değil systemctl list-timers --all sudo systemctl daemon-reload sonrası enable --now çalıştırın
PHP betiği cron'da IonCube veya sürüm hatası veriyor CLI PHP, web sunucusunun PHP'sinden farklı php -v && php --ini Tam sürüm ikilisini (örn. /usr/local/bin/ea-php81) yazın
at ile alınan iş hiç çalışmadı İş silinmiş veya atd servisi durmuş atq; systemctl status atd atq ile işi doğrulayın; atd çalışmıyorsa başlatın
Timer son çalışmış ama iş yapılmış görünmüyor Servis hatayla çıkmış, hata journalda kalmış journalctl -u gorev.service --since "1 hour ago" ExecStart komutunu elle çalıştırıp hatayı düzeltin

Aynı kontrollerin log tarafındaki karşılığı aşağıdaki gibidir. Bir crontab satırı tetiklendiğinde Ubuntu'da syslog'a CRON satırı düşer; systemd göreviyse journal kaydı oluşur:

$ grep CRON /var/log/syslog | tail -n 3
Oct 28 03:15:01 app01 CRON[21439]: (root) CMD (/usr/bin/find /var/log/app -type f -mtime +14 -delete)
Oct 28 03:15:01 app01 CRON[21438]: (CRON) info (No MTA installed, discarding output)
Oct 28 04:00:01 app01 CRON[21502]: (root) CMD (/usr/bin/php /var/www/app/cron.php)

$ journalctl -u cleanup.service --since "1 hour ago"
Oct 28 04:00:01 app01 systemd[1]: Starting cleanup.service - Gecici Dizin Temizleme Servisi...
Oct 28 04:00:01 app01 (find)[21504]: cleanup.service: Deactivated successfully.

Örnekteki (root) CMD (...) satırları komutun gerçekten tetiklendiğini kanıtlar. No MTA installed, discarding output satırı ise görevin bir çıktı ya da hata ürettiğini ama e-posta gönderilemediği için bu içeriğin çöpe gittiğini gösterir; hangisi olduğunu görmek için çıktıyı dosyaya yönlendirin. Journaldaki Deactivated successfully satırı oneshot servisin hata kodu sıfırla bittiğinin kanıtıdır; hata varsa burada Failed with result 'exit-code' görürsünüz.

Sık Karşılaşılan Hatalar ve Çözümleri

Geleneksel cron'dan alternatif zamanlayıcılara geçerken en sık karşılaşılan dört teknik hata ve bunların kesin çözüm adımları şunlardır:

1. Failed to start myjob.timer: Unit myjob.service not found
Nedeni: Systemd timer birimi varsayılan olarak kendi adıyla birebir eşleşen bir servis birimi arar. Örneğin myjob.timer dosyası myjob.service dosyasını tetikler. Servis dosyasının adı farklıysa veya dosya henüz oluşturulmamışsa bu hata döner.
Çözümü: Timer ve service dosya adlarını eşitleyin. Eğer farklı isimler kullanmak zorundaysanız .timer dosyasının [Timer] bölümüne Unit=gercek-servis-adi.service yönergesini açıkça ekleyin ve ardından sudo systemctl daemon-reload çalıştırın.

2. anacron: Can't open /var/spool/anacron/job
Nedeni: Anacron görevlerin son çalışma zaman damgalarını /var/spool/anacron dizinindeki dosyalarda saklar. Bu dizin silinmişse, salt okunur bir dosya sistemine bağlıysa veya anacron'u çalıştıran kullanıcının yazma yetkisi yoksa bu hata oluşur.
Çözümü: Dizinin varlığını ve sahipliğini kontrol edin. Dizin eksikse sudo mkdir -p /var/spool/anacron komutuyla oluşturun, sahipliğini root kullanıcısına verin (sudo chown root:root /var/spool/anacron) ve izinleri sudo chmod 755 /var/spool/anacron olarak ayarlayın.

3. Dağıtık Kümede Cron Çakışması (Race Condition)
Nedeni: Uygulamanız Kubernetes, Docker Swarm veya çoklu sanal sunucu üzerinde küme (cluster) halinde çalışırken her sunucunun yerelinde cron çalışmasıdır. Örneğin günlük abonelik ücreti tahsilatı her sunucuda aynı anda tetiklenerek müşteriden mükerrer para çekilmesine neden olabilir.
Çözümü: Zamanlamayı yerel sunuculardan çıkarıp merkezi bir noktaya taşıyın. Ya Redis tabanlı dağıtık kilit mekanizması (Redlock) kurun ya da tüm sunucuların önündeki yük dengeleyiciye harici bir web cron servisi (cronjob.com.tr) üzerinden tek bir HTTP isteği gönderilmesini sağlayın.

4. Bellek Şişmesi (Memory Leak) ve Süreç Çökmesi
Nedeni: Node.js, Python veya PHP ile yazılmış uygulama içi zamanlayıcıların günlerce kesintisiz ayakta kalması sırasında kapatılmayan veritabanı bağlantıları veya temizlenmeyen değişkenler nedeniyle RAM tüketiminin sürekli artmasıdır. Sistem yetersiz bellek nedeniyle süreci (OOM Killer) aniden sonlandırır.
Çözümü: Sürekli çalışan bir uygulama süreci yerine, her çalıştırmada ayağa kalkıp işi bitince kapanan izole bir komut yapısı kurun. Alternatif olarak web uygulamanızı standart HTTP istekleriyle tetikleyerek bellek yönetimini web sunucusunun (FPM veya Nginx worker geri dönüşümü) yönetimine bırakın.

cronjob.com.tr ile HTTP Tabanlı Alternatif Kurulum

Sunucunuzda hiçbir arka plan süreci (daemon), crontab dosyası veya systemd birimiyle uğraşmadan zamanlanmış görevlerinizi bulut üzerinden yönetebilirsiniz. HTTP tabanlı bir iş kurmak için aşağıdaki adımları izleyin:

  1. Uygulamanızda zamanlanmış görevi yürütecek güvenli bir HTTPS uç noktası hazırlayın (örneğin https://api.siteniz.com/cron/cleanup). Bu adresi yetkisiz kişilerin tetiklemesini engellemek için özel bir başlık (örneğin X-Cron-Token: gizli-anahtariniz) kontrolü ekleyin.
  2. cronjob.com.tr paneline giriş yapın ve 'Yeni İş Ekle' butonuna tıklayın. Kayıt tamamen ücretsizdir ve kredi kartı bilgisi istenmez.
  3. Görevinizin URL adresini girin, HTTP metodunu (GET, POST, PUT, DELETE vb.) seçin ve yetkilendirme başlığınızı ekleyin. Zamanlama olarak hazır aralıklardan birini seçebilir veya crontab sözdizimi kurallarına uygun beş alanlı bir cron ifadesi tanımlayabilirsiniz. Varsayılan saat dilimi Europe/Istanbul'dur.
  4. İşi kaydedip paneldeki manuel çalıştırma seçeneğiyle bir istek gönderin. Dönen durum kodunun 200–399 aralığında olduğunu ve yanıt süresini doğrulayın. Ardından görevi etkinleştirin.

cronjob.com.tr üzerinde minimum çalıştırma aralığı 60 saniyedir (1 dakika). Yanıt bekleme süresi (timeout) seçilen aralığa göre otomatik belirlenir: aralıktan 5 saniye çıkarılarak hesaplanır (en az 5, en fazla 290 saniye). Örneğin 1 dakikalık görevlerde 55 saniye, 2 dakikalık görevlerde 115 saniye, 5 dakika ve üzeri hazır aralıklarda ve 5 alanlı cron ifadeli işlerde 290 saniye yanıt beklenir. HTTP 200–399 aralığındaki yanıtlar başarılı kabul edilir.

Her çalıştırmanın durum kodu, yanıt süresi ve gövdesinin ilk ~64 KB'lık bölümü 7 gün boyunca loglarda saklanır. Ardışık hata sayısı eşiği (varsayılan 3, 1–20 arasında ayarlanabilir) aşıldığında sistem kayıtlı e-posta adresinize erişim sorunu uyarısı iletir; kesinti giderildiğinde ise kesinti süresi bilgisiyle birlikte düzeldi e-postası gönderilir.

Sıkça Sorulan Sorular (SSS)

Systemd timer cron'un yerini tamamen alabilir mi?

Evet, modern Linux dağıtımlarında systemd timer'lar cron'un yerini tamamen alabilir. Servis bağımlılık kontrolü, hassas zamanlama, cgroups ile kaynak sınırlama ve journalctl ile yerel loglama gibi üstünlükler sunar.

Anacron ile Cron arasındaki en temel fark nedir?

Cron bilgisayar kapalıysa görevi kaçırır ve sonradan telafi etmez; Anacron ise bilgisayar açıldığında kaçırılan günlük veya haftalık görevi otomatik olarak çalıştırır.

Web tabanlı cron servisi kullanmanın avantajı nedir?

Sunucudan bağımsızdır; sunucuda cron daemon yönetimi gerektirmez, sunucu erişilemez olduğunda e-posta uyarısı verir ve tüm projeleri tek bir merkezi panelden yönetmenizi sağlar.

Tek seferlik ileri tarihli bir iş için ne kullanılır?

Tek seferlik zamanlanmış görevler için Linux'ta at komutu kullanılır; yinelenen bir takvim oluşturmadan belirlenen saat veya sürede komutu bir defa çalıştırıp sonlanır.

Zamanlanmış GitHub Actions işleri tam dakikinde çalışır mı?

Hayır. GitHub yoğun saatlerde schedule tetiklemelerini dakikalar hatta daha uzun süre geciktirebilir. Ayrıca herkese açık (public) depolarda 60 gün depo etkinliği olmazsa zamanlanmış workflow'lar otomatik olarak devre dışı kalır; kesin saat kritik olan işlerde harici HTTP zamanlayıcı daha öngörülebilir davranır.

Systemd timer'ın bir sonraki çalışma saatini nasıl önceden görürüm?

systemctl list-timers --all komutunun NEXT sütunu tüm etkin zamanlayıcıların sıradaki tetiklenme vaktini, LEFT sütunu kalan süreyi gösterir. Takvim ifadesinin gelecekteki eşleşmelerini systemd-analyze calendar '*-*-* 04:00:00' komutu listeler.

Hemen Ücretsiz Cron Job Oluşturun

Sunucuda daemon yapılandırmadan HTTP isteklerinizi güvenle zamanlayın, logları panelden izleyin.

Ücretsiz Başla →

İlgili Rehberler