Cron Nedir?
Cron, Unix tabanlı işletim sistemlerinde zamanlama görevi yapan bir daemon (arka plan programı) aracıdır. Kullanıcılara belirli zaman dilimlerinde otomatik olarak komutlar veya scriptler çalıştırma imkanı sağlar. Genelde sistem bakım görevleri, otomatik yedekleme işlemleri ve rapor üretimi gibi işlemler için kullanılır. Cron’un esnek zamanlama yetenekleri, günlük, haftalık veya aylık raporların otomatik olarak oluşturulmasını sağlayarak iş akışını kolaylaştırır.
Cron Görevleri ve Crontab Dosyası
Cron görevleri, “crontab” adı verilen bir yapılandırma dosyasında tanımlanır. Her kullanıcı, kendi crontab dosyasını oluşturabilir ve bu dosyada hangi komutların hangi zaman dilimlerinde çalıştırılacağını belirleyebilir. Crontab dosyasının temel formatı, aşağıdaki gibidir:
“`
/path/to/command argument1 argument2
“`
Her bir yıldız () belirli bir zaman dilimini temsil eder:
1. Dakika (0-59)
2. Saat (0-23)
3. Gün (1-31)
4. Ay (1-12)
5. Haftanın Günü (0-6, 0 Pazar)
Eğer günlük raporların her gün belirli bir saatte oluşturulması isteniyorsa, crontab dosyasında aşağıdaki gibi bir satır eklenebilir:
“`
0 8 /path/to/script/rapor_olustur.sh
“`
Bu örnekte, “rapor_olustur.sh” adlı script her gün saat 08:00’de çalıştırılacaktır.
Günlük Rapor Oluşturma
Günlük raporlar genellikle belirli bir gün içerisinde gerçekleştirilen işlemleri, satışları veya sistem durumunu özetler. Cron aracılığıyla günlük rapor oluşturmak için bir script yazılmalı ve bu script, istenilen bilgileri toplamalıdır. Örneğin, bir veritabanındaki bilgileri alıp bir dosyaya veya e-posta yoluyla gönderme işlemi gerçekleştirilebilir.
Aşağıda, bir günlük rapor üreten basit bir örnek script bulunmaktadır:
“`bash
!/bin/bash
DATE=$(date ‘+%Y-%m-%d’)
DATA=$(echo “SELECT FROM sales WHERE date=’$DATE’;” | mysql -u username -ppassword dbname)
echo “$DATA” > /path/to/reports/daily_report_$DATE.txt
“`
Bu script, her gün çalıştırıldığında o günün tarihindeki satış verilerini alır ve bir dosyaya kaydeder. Cron kullanılarak script’in düzenli olarak çalışması sağlanır.
Haftalık Rapor Oluşturma
Haftalık raporlar, bir hafta boyunca gerçekleşen olayları, performansları veya diğer önemli bilgileri özetler. Haftalık rapor oluşturmak için Crontab’da haftanın belirli bir gününde çalışacak şekilde planlama yapılabilir. Örneğin, her Pazartesi sabahı çalışacak bir script’e ihtiyaç vardır.
Aşağıdaki örnek, Pazartesi günü çalışacak bir haftalık rapor oluşturma script’idir:
“`bash
!/bin/bash
START_DATE=$(date –date=’last monday’ ‘+%Y-%m-%d’)
END_DATE=$(date –date=’next sunday’ ‘+%Y-%m-%d’)
DATA=$(echo “SELECT FROM sales WHERE date BETWEEN ‘$START_DATE’ AND ‘$END_DATE’;” | mysql -u username -ppassword dbname)
echo “$DATA” > /path/to/reports/weekly_report_$START_DATE-$END_DATE.txt
“`
Bu script, bir haftalık satış verilerini alır ve belirtilen tarih aralığında bir dosyaya kaydeder. Crontab’da belirtilen saatte bu script’in çalışması sağlanabilir.
Aylık Rapor Oluşturma
Aylık raporlar, bir ay boyunca gerçekleştirilen aktivitelerin ve performansların toplandığı raporlardır. Aylık raporların hazırlanması için, her ayın ilk gününde çalışacak bir cron görevi tanımlanabilir.
Aşağıda, aylık rapor üreten bir script örneği verilmiştir:
“`bash
!/bin/bash
MONTH=$(date ‘+%Y-%m’)
DATA=$(echo “SELECT FROM sales WHERE date LIKE ‘$MONTH%’;” | mysql -u username -ppassword dbname)
echo “$DATA” > /path/to/reports/monthly_report_$MONTH.txt
“`
Bu script, belirtilen ayın tüm satışlarını toplar ve bir dosyaya kaydeder. Aylık raporun otomatik olarak oluşturulmasını sağlamak için crontab dosyasında şu satır eklenebilir:
“`
0 0 1 /path/to/script/rapor_olustur_aylik.sh
“`
Raporların İletimi
Oluşturulan raporların kullanıcıya veya ilgili birimlere ulaşması için e-posta ile gönderilmesi gerekebilir. Bu işlem için `mail` veya `sendmail` gibi araçlar kullanılabilir. Script içine eklenerek, raporlar otomatik olarak e-posta ile iletilebilir.
Örneğin:
“`bash
cat /path/to/reports/daily_report_$DATE.txt | mail -s “Günlük Rapor” user@example.com
“`
Bu satır, oluşturulan raporu belirtilen e-posta adresine gönderir.
Sonuç
Cron ile rapor oluşturma otomasyonu, günlük, haftalık ve aylık raporların düzenli olarak hazırlanmasını sağlayan etkili bir yöntemdir. Doğru crontab ayarları ve uygun scriptler ile, sistemdeki verilerin düzenli ve otomatik bir şekilde toplanması ve raporlanması sağlanabilir. Bu sayede işletmelerin karar verme süreçleri daha hızlı ve verimli hale gelir.