Cron Nedir?
Cron, Unix benzeri işletim sistemlerinde zamanlama işlemleri gerçekleştirmek için kullanılan bir sistem aracıdır. Otomatik görevleri belirli zaman dilimlerinde veya zaman aralıklarında çalıştırmak için kullanılır. Cron, genellikle sistem yönetimi, yedekleme ve otomasyon görevleri için yaygın olarak tercih edilmektedir. Cron, crontab dosyasında tanımlı olan görevleri belirlenen zamanlarda otomatik olarak gerçekleştirir.
Crontab Dosyası
Crontab, ‘cron table’ kelimelerinin kısaltmasıdır ve zamanlanmış görevlerin yer aldığı dosyadır. Her kullanıcı için ayrı bir crontab dosyası bulunmaktadır. Crontab dosyası, belirli bir zaman diliminde hangi komutun veya scriptin çalıştırılacağını tanımlar. Crontab için temel komutlar şunlardır:
– `crontab -e`: Crontab dosyasını düzenlemek için kullanılır.
– `crontab -l`: Mevcut crontab içeriğini listelemek için kullanılır.
– `crontab -r`: Crontab dosyasını silmek için kullanılır.
Yedekleme Stratejisi
Yedekleme stratejisi belirlemek, yedekleme otomasyonu için ilk adımdır. Yedeklenecek dosyaların ve verilerin tanımlanması önemlidir. İki temel yedekleme türü bulunmaktadır: dosya sistemi yedekleme ve veritabanı yedekleme.
Dosya sistemi yedekleme, sunucudaki dosyaların, dizinlerin ve uygulamaların yedeklenmesi işlemidir. Veritabanı yedekleme ise, veritabanı yönetim sistemine bağlı olan verilerin yedeklenmesi işlemidir.
Her iki sistem için de yedekleme gerçekleştirilmeden önce, yedekleme ortamının, sıkıştırma yönteminin ve yedekleme sıklığının belirlenmesi önerilmektedir.
Dosya Sistemi Yedekleme
Dosya sistemi yedekleme için bash scriptleri veya tar komutu kullanılabilir. Tar komutu, dizinleri ve dosyaları arşivlemek için en yaygın kullanılan araçlardan biridir. Aşağıdaki örnekte, bir dizinin günlük yedeğini almak için bir bash scripti kullanılmaktadır:
“`bash
!/bin/bash
Yedekleme dizini
BACKUP_DIR=”/path/to/backup”
Yedeklenecek dizin
SOURCE_DIR=”/path/to/directory”
Geçerli tarih
DATE=$(date +’%Y-%m-%d’)
Yedekleme
tar -czf $BACKUP_DIR/backup-$DATE.tar.gz $SOURCE_DIR
“`
Bu script, belirtilen dizindeki dosyaları ve dizinleri tar arşivine sıkıştırır ve belirtilen yedekleme dizinine kaydeder.
Veritabanı Yedekleme
Veritabanı yedekleme için, kullanılan veritabanı yönetim sistemine uygun komutlar kullanılmalıdır. Örneğin, MySQL veritabanı için `mysqldump` aracı kullanılabilir:
“`bash
!/bin/bash
Veritabanı bilgileri
DB_NAME=”veritabanı_adı”
DB_USER=”kullanıcı_adı”
DB_PASS=”şifre”
BACKUP_DIR=”/path/to/backup”
Geçerli tarih
DATE=$(date +’%Y-%m-%d’)
Yedekleme
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$DB_NAME-$DATE.sql
“`
Bu script, belirtilen veritabanının yedeğini almak için kullanılır. Alınan yedekleme dosyası, belirtilen yedekleme dizinine kaydedilir.
Cron ile Yedekleme Planlama
Yedekleme scriptlerinin belirli zaman dilimlerinde çalıştırılması için crontab dosyasına eklenmesi gerekmektedir. Örneğin, her gün saat 02:00’de dosya sistemi ve veritabanı yedeği almak için crontab dosyasına aşağıdaki satırlar eklenmelidir:
“`
0 2 /bin/bash /path/to/backup_script.sh
“`
Bu satır, belirtilen saatte ve günde yedekleme scriptini çalıştırır.
Cron Daemon’unun Kontrolü
Cron görevlerinin başarılı bir şekilde çalışıp çalışmadığını kontrol etmek önemlidir. Cron işleri, `syslog` dosyasına kaydedilir. Log dosyasında cron ile ilgili hataları ve bilgi mesajlarını görüntülemek için aşağıdaki komut kullanılabilir:
“`bash
grep CRON /var/log/syslog
“`
Bu komut, cron ile ilgili tüm kayıtları listeleyecek ve olası hataların giderilmesine yardımcı olacaktır.
Yedeklerin Saklanması ve Yönetimi
Yedekleme işlemi sonrasında alınan dosyaların yönetimi de önemlidir. Yedekleme dosyalarının saklanma süresi, yedekleme politikasına bağlı olarak belirlenmelidir. Gereksiz dosyaların silinmesi ve alan yönetiminin sağlanması, yedekleme sisteminin verimliliğini artıracaktır.
Bu bağlamda, eski yedeklerin otomatik olarak belirli bir süre sonunda silinmesi için tekrar bir script yazılabilir ve bu script de cron görevine eklenebilir.
Sonuç
Cron, yedekleme otomasyonu için güçlü bir araçtır. Hem dosya sistemi hem de veritabanı yedekleme işlemleri için etkili bir şekilde zamanlama yapılabilir. Uygulanan yedekleme stratejisi, sistem tutarlılığını ve veri güvenliğini sağlar. Yedekleme işleminin düzenli olarak yapılması ve planlı bir şekilde yönetilmesi, sistem yönetimi için kritik öneme sahiptir.