Cron Nedir?
Cron, Linux'un en güçlü ve en yaygın kullanılan zamanlama aracı olan bir servisidir. Adını, Antik Yunan'daki zaman tanrısı "Chronos"tan alır. Temelde, belirli zaman dilimlerinde bir komutun çalışmasını sağlar. Peki, bu nasıl işliyor?
Cron'un çalıştığı temel mantık çok basittir: Bir dosya, yani "cron tab" dosyası oluşturursunuz, burada hangi komutun ne zaman çalışacağını belirtirsiniz. Sonra cron servisi bu dosyayı takip eder ve belirtilen zamanlarda bu komutları çalıştırır.
Cronjob Oluşturmak
Linux'ta cronjob'ları oluşturmanın en kolay yolu, "crontab" komutunu kullanmaktır. Bu komut, kullanıcıların cron tab dosyasını düzenlemelerini sağlar.
Cronjob dosyasını açmak için terminali açın ve şu komutu yazın:
kopyalacrontab -e
Bu komut, sisteminizdeki cronjob'ları düzenlemenize olanak tanır. İlk defa "crontab -e" komutunu yazdığınızda, sistem sizden bir editör seçmenizi isteyebilir. Eğer vi veya nano gibi editörlere aşina değilseniz, nano en basit olanıdır.
Cronjob Formatı
Cronjob'lar belirli bir formatta yazılır. İşte o format:
kopyala* * * * * /path/to/script
Bu beş yıldızlı işaretin her biri bir zaman birimi anlamına gelir. Yıldızlar, her bir zaman diliminin yerine herhangi bir değer verilebileceğini gösterir. Bu zaman birimleri şunlardır:
- 1. Yıldız: Dakika (0-59)
- 2. Yıldız: Saat (0-23)
- 3. Yıldız: Gün (1-31)
- 4. Yıldız: Ay (1-12)
- 5. Yıldız: Hafta Günü (0-6) [0=Sunday, 1=Monday, ...]
Örneğin, her gün saat 3'te belirli bir scripti çalıştırmak isterseniz, şu şekilde yazabilirsiniz:
kopyala0 3 * * * /path/to/script.sh
Burada, her gün saat 3:00'te "script.sh" dosyasının çalışması için cronjob oluşturduk.
Örnek Cronjob'lar
1. Her 5 dakikada bir script çalıştırma
Eğer bir komutun her 5 dakikada bir çalışmasını istiyorsanız, şu şekilde bir cronjob yazabilirsiniz:
kopyala*/5 * * * * /path/to/script.sh
Bu cronjob, her 5 dakikada bir çalışacak ve belirttiğiniz scripti çalıştıracaktır.
2. Her gün belirli bir saatte komut çalıştırma
Eğer her gün belirli bir saatte bir görev yapmak istiyorsanız, örneğin her gece 12'de, şu şekilde yazabilirsiniz:
kopyala0 0 * * * /path/to/daily_backup.sh
Bu cronjob her gün gece 12'de "daily_backup.sh" yedekleme scriptini çalıştıracaktır.
3. Haftanın belirli günlerinde komut çalıştırma
Eğer belirli günlerde (örneğin yalnızca Pazartesi ve Cuma günleri) bir komut çalıştırmak istiyorsanız, şu şekilde yazabilirsiniz:
kopyala0 5 * * 1,5 /path/to/weekly_task.sh
Bu cronjob, her Pazartesi ve Cuma günü sabah 5:00'te "weekly_task.sh" komutunu çalıştıracaktır.
Cronjob'ları Yönetme
Cronjob'larınızı yönetmek çok kolay. İşte bazı faydalı komutlar:
- Cronjob'ları görüntülemek
Cronjob'ları görmek için şu komutu yazabilirsiniz:
kopyalacrontab -l
- Cronjob'ları silmek
Bir cronjob'u silmek için şu komutu kullanabilirsiniz:
kopyalacrontab -r
Bu komut, tüm cronjob'larınızı siler.
Önemli İpuçları
- Çıktıyı bir dosyaya yönlendirin
Bir cronjob çalıştırıldığında çıktı genellikle e-posta ile gönderilir. Ancak, çıktıyı bir dosyaya yönlendirmek isterseniz, şu şekilde yapabilirsiniz:
kopyala0 3 * * * /path/to/script.sh > /path/to/logfile.log 2>&1
Bu, scriptin çıktısını "logfile.log" dosyasına yönlendirecektir.
- Zaman dilimi dikkat edin
Cronjob'lar, sistem zaman dilimine göre çalışır. Eğer sisteminizin zaman dilimini değiştirdiyseniz, cronjob'lar beklediğiniz gibi çalışmayabilir. Bu durumu göz önünde bulundurmanızda fayda var.
Sonuç
Artık Linux'ta cronjob kullanarak sisteminizdeki tekrarlayan işleri kolayca otomatikleştirebilirsiniz. Cron, özellikle sistem yöneticilerinin işini oldukça kolaylaştıran güçlü bir araçtır. Bu yazıda öğrendiğiniz adımlarla, günlük görevlerinizi zamanlanmış bir şekilde çalıştırabilir ve önemli görevleri unutma riskini ortadan kaldırabilirsiniz.