Cron Nedir?
Cron, Unix tabanlı işletim sistemlerinde belirli zamanlarda otomatik işlemleri planlama ve yürütme amacıyla kullanılan bir zamanlayıcıdır. Kullanıcılar, sistem üzerinde belirli bir komut veya script’in periyodik olarak çalıştırılmasını sağlamak için cron’yu tercih eder. Bu işlemler genellikle günlük, haftalık, aylık veya daha sık periyodik aralıklarla yapılabilir. Cron tablosu (crontab) aracılığıyla tanımlanan görevlerin zamanlaması, belirli bir formatta belirtilir.
Crontab Formatı
Crontab dosyasının içeriği, her satırda bir görevi ve bu görevin zamanlamasını belirten beş alan ve ardından çalıştırılacak komutla oluşur. Bir crontab satırının formatı şu şekildedir:
“`
komut
“`
Bu alanların anlamları ise şöyledir:
– Dakika (0–59)
– Saat (0–23)
– Ayın Günü (1–31)
– Ay (1–12)
– Haftanın Günü (0–7) (0 ve 7, Pazar’ı temsil eder)
Sık Kullanılan Cron Örnekleri
Günlük Yedekleme İşlemi
Veritabanı yedekleme işlemleri için günlük olarak belirli bir saatte yedek almak amacıyla cron kullanılabilir. Örneğin, her gün sabah 3’te yedek almak için:
“`
0 3 /usr/bin/mysqldump -u kullanıcı -pşifre veritabanı > /yedekler/backup.sql
“`
Bu örnekte, `mysqldump` komutu kullanılarak belirtilen veritabanının yedeği alınmakta ve yedek dosyası belirtilen dizine kaydedilmektedir.
Haftalık Sistem Güncellemeleri
Sistem güncellemeleri yapmak için her hafta Pazartesi günü saat 2’de güncelleme komutu çalıştırılabilir:
“`
0 2 1 apt-get update && apt-get upgrade -y
“`
Bu, sistemin güncel kalmasını sağlayacak ve güncellemeleri otomatik olarak yapacaktır.
Aylık Disk Temizliği
Disk temizliği için her ayın ilk günü saat 5’te belirli bir komut çalıştırılabilir. Bunun için:
“`
0 5 1 /usr/bin/clean_disk.sh
“`
Bu komut, `clean_disk.sh` script’ini çalıştırarak disk temizliği işlemini otomatik hale getirir.
Belirli Aralıklarla Log Dosyalarını Silme
Log dosyalarının belirli bir süre sonra silinmesi gerektiğinde, bu işlem her gün saat 1’de yapılabilir:
“`
0 1 find /var/log -name “.log” -type f -mtime +7 -exec rm {} \;
“`
Bu komut, 7 günden daha eski log dosyalarını bulur ve siler.
Web Uygulaması için Önbellek Temizleme
Bir web uygulamasında önbellek temizliği yapmak için haftada bir gün otomatik olarak önbelleği temizleyebilir:
“`
0 4 6 /usr/bin/cache_clear.sh
“`
Bu, her Cumartesi sabahı 4’te `cache_clear.sh` script’ini çalıştırarak önbelleği temizler.
E-posta Gönderimi
Her ayın 15’inde özel bir raporu e-posta ile göndermek için cron kullanılabilir:
“`
0 10 15 /usr/bin/python /path/to/send_report.py
“`
Bu komut, belirtilen script’i çalıştırarak e-posta ile rapor gönderme işlemini otomatikleştirir.
Sistem Durumu Raporu
Her akşam saat 11’de sistem durumu raporunu oluşturmak için:
“`
0 23 /usr/bin/system_status >> /var/log/system_report.log
“`
Bu, gün sonu sistem durumu bilgisini logfile’a yazarak günlük raporların oluşturulmasını sağlar.
Kaynak Kullanımını İzleme
Her beş dakikada bir sistem kaynak kullanımını izleyerek belgelemek için aşağıdaki cron girişini kullanmak mümkündür:
“`
/5 /usr/bin/top -b -n 1 >> /var/log/resource_usage.log
“`
Bu işlem, sistem kaynaklarının durumunu beş dakikada bir kaydeder.
Otomatik FTP Yedekleme
FTP sunucusundan dosyaların yedeğini almak için her gün saat 4’te bir komut çalıştırılabilir:
“`
0 4 /usr/bin/lftp ftp://kullanıcı:şifre@ftp.sitename.com -e “mirror –verbose /remote/path /local/path; bye”
“`
Bu komut, belirtilen FTP sunucusundaki dosyaları belirtilen yerel dizine yedeğini alır.
Veri Tabanı Temizliği
Veritabanında gereksiz kayıtları silmek için her Pazartesi saat 1’de bir komut çalıştırmak mümkün:
“`
0 1 1 /usr/bin/mysql -u kullanıcı -pşifre -e “DELETE FROM tablo_adı WHERE tarih < NOW() - INTERVAL 30 DAY"
“`
Bu komut, 30 günden eski kayıtları otomatik olarak siler.
Kısıtlama ve Dikkat Edilmesi Gerekenler
Cron kullanırken dikkat edilmesi gereken bazı noktalar vardır. Özellikle her komutun doğru çalıştığından emin olunmalı ve gerekiyorsa log dosyaları kullanılmalıdır. Doğru izinlerin verilmesi, komutların doğru çalışmasını etkileyebilir. Ayrıca, her zaman localhost’ta test edilmesi önerilir. Zaman dilimi ayarları da göz önünde bulundurulmalıdır; aksi takdirde beklenmeyen sonuçlarla karşılaşılabilir.
Cron, otomasyona dair büyük kolaylıklar sağlar ve sistem yöneticileri, geliştiriciler ve benzeri profesyoneller için vazgeçilmez bir araç olarak öne çıkar. Doğru kullanıldığında zaman kazandırır ve belirli görevlerin unutulmasını engeller.


