Cronjob (Zamanlanmış Görevler)

cronjob-zamanlanmis-gorevler (büyük resim için tıklayın)

Cronjob?

Cronjob, belirli zaman aralıklarında otomatik olarak bir komut veya görev çalıştırmayı sağlayan bir zamanlama mekanizmasıdır. Genellikle Unix tabanlı sistemlerde (Linux, macOS vb.) kullanılır ve zamanlanmış görevlerin otomatik olarak çalıştırılması için bir cron daemon (arka plan hizmeti) tarafından yönetilir.

Cronjob Kullanım Alanları

Yedekleme İşlemleri:

  • Veritabanı veya dosya sistemlerini düzenli olarak yedeklemek.

Sistem Bakımı:

  • Disk temizliği, log dosyalarının arşivlenmesi veya silinmesi.

Uygulama Güncellemeleri:

  • Yazılım veya güvenlik güncellemelerini belirli aralıklarla çalıştırmak.

E-posta Gönderimi:

  • Düzenli raporlar veya bildirim e-postaları göndermek.

Veri İşleme:

  • Veritabanı sorguları, veri senkronizasyonu veya API çağrıları.

Web Uygulamaları:

  • Web sitesi önbelleğini temizlemek, cron tabanlı arka plan işlerini çalıştırmak.

Cronjob'un Çalışma Mantığı

Cron zamanlama sisteminin temelinde bir yapılandırma dosyası olan crontab bulunur. Crontab dosyası, hangi komutun ne zaman çalıştırılacağını belirler.

Crontab Söz Dizimi

Crontab dosyasındaki her satır, bir görevi ve zamanlama bilgisini ifade eder. Söz dizimi şu şekildedir:

* * * * * komut

| | | | |

| | | | +----- Yıl (opsiyonel, çoğu durumda kullanılmaz)

| | | +------- Ay (1 - 12)

| | +--------- Gün (1 - 31)

| +----------- Saat (0 - 23)

+------------- Dakika (0 - 59)

Crontab Örnekleri

Her 5 Dakikada Bir Çalışan Görev: */5 * * * * komut

Her Gün Saat 02:00'de Çalışan Görev: 0 2 * * * komut

Her Pazartesi Saat 08:30'da Çalışan Görev: 30 8 * * 1 komut

Belirli Bir Tarihte (15 Mayıs Saat 14:00) Çalışan Görev: 0 14 15 5 * komut

Hafta İçi Her Gün Saat 09:00’da Çalışan Görev: 0 9 * * 1-5 komut

Crontab ile Çalışmak

Crontab Dosyasını Açma ve Düzenleme: crontab -e

Mevcut Crontab Görevlerini Listeleme: crontab -l

Crontab Görevlerini Silme: crontab -r

Günlük ve Log Yönetimi

Cronjob'ların çıktısı genellikle bir dosyaya yönlendirilir:

* * * * * komut >> /path/to/logfile.log 2>&1

  • >>: Görevin çıktısını bir dosyaya ekler.
  • 2>&1: Hata mesajlarını da aynı dosyaya yönlendirir.

Crontab için Faydalı Kısayollar

İfadeAnlamı
@rebootSistemin açılışında
@hourlyHer saat başında
@dailyHer gün gece yarısında
@weeklyHer hafta başında
@monthlyHer ay başında
@yearlyHer yıl başında

Örnek Senaryolar

Bir Web Sitesinin Önbelleğini Temizlemek:

0 3 * * * /usr/bin/php /var/www/html/artisan cache:clear

Veritabanı Yedeklemesi:

0 1 * * * mysqldump -u kullanıcı -pşifre veritabani > /yedek/dizin/yedek.sql

Disk Alanını Kontrol Etmek ve Log Tutmak:

0 0 * * * df -h >> /var/log/disk_usage.log

Cronjob Kullanmanın Avantajları

Zaman Tasarrufu:

  • Tekrarlayan görevler otomatik olarak çalıştırılır.

Doğru ve Tutarlı Çalışma:

  • Görevlerin belirli bir zaman diliminde her seferinde aynı şekilde çalıştırılması sağlanır.

Esneklik:

  • İstediğiniz herhangi bir görevi zamanlayabilirsiniz.

Sistem Yönetimi:

  • Sunucu bakım işlemlerini otomatikleştirir.

Sonuç

Cronjob, zamanlama gerektiren tekrarlı görevleri otomatikleştirmek için kullanılan etkili bir araçtır. Özellikle sistem yöneticileri ve geliştiriciler için günlük operasyonları kolaylaştırır. Doğru yapılandırıldığında, büyük zaman tasarrufu ve verimlilik sağlar.

*Gönderi ve görsel chatgpt ile oluşturulmuştur.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)