VDS Sunucuya SSH ile Bağlanma Rehberi (PuTTY & Terminal)
Linux VDS sunucunuza SSH ile bağlanma adımları: PuTTY, Terminal, anahtar tabanlı kimlik doğrulama, Path Panel firewall kuralı ve güvenlik ipuçları.
Linux'ta crontab ile zamanlanmış görev oluşturma, cron ifade sözdizimi, pratik örnekler, loglama ve yaygın hatalardan kaçınma rehberi.
Cron, Linux sistemlerde belirli zamanlarda veya aralıklarla komut ve betikleri otomatik olarak çalıştıran bir zamanlayıcı servisidir. Yedekleme, log temizleme, güncelleme kontrolü gibi tekrarlayan görevleri otomatikleştirmek için vazgeçilmezdir.
Cron servisi çoğu Linux dağıtımında varsayılan olarak kurulu ve çalışır durumdadır. systemctl status cron veya systemctl status crond komutuyla durumunu kontrol edebilirsiniz.
Her cron görevi beş zaman alanı ve çalıştırılacak komuttan oluşur:
* * * * * /path/to/command
│ │ │ │ │
│ │ │ │ └── Haftanın günü (0-7, 0 ve 7 = Pazar)
│ │ │ └──── Ay (1-12)
│ │ └────── Ayın günü (1-31)
│ └──────── Saat (0-23)
└────────── Dakika (0-59)
| Karakter | Anlamı | Örnek |
|---|---|---|
* | Her değer | * * * * * = her dakika |
, | Birden fazla değer | 1,15 * * * * = 1. ve 15. dakika |
- | Aralık | 1-5 * * * * = 1'den 5'e kadar dakikalar |
/ | Adım | */5 * * * * = her 5 dakikada bir |
# Her dakika çalıştır
* * * * * /usr/bin/script.sh
# Her saat başı çalıştır
0 * * * * /usr/bin/script.sh
# Her gün saat 02:30'da çalıştır
30 2 * * * /usr/bin/backup.sh
# Her Pazartesi saat 08:00'de çalıştır
0 8 * * 1 /usr/bin/weekly-report.sh
# Her ayın 1'inde saat 00:00'da çalıştır
0 0 1 * * /usr/bin/monthly-cleanup.sh
# Her 5 dakikada bir çalıştır
*/5 * * * * /usr/bin/check-service.sh
# Hafta içi (Pazartesi-Cuma) her gün saat 09:00'da
0 9 * * 1-5 /usr/bin/workday-task.sh
# Her 6 saatte bir çalıştır
0 */6 * * * /usr/bin/sync.sh
@reboot # Sistem başlangıcında bir kez
@yearly # Yılda bir kez (0 0 1 1 *)
@monthly # Ayda bir kez (0 0 1 * *)
@weekly # Haftada bir kez (0 0 * * 0)
@daily # Günde bir kez (0 0 * * *)
@hourly # Saatte bir kez (0 * * * *)
# Mevcut kullanıcının crontab'ını düzenle
crontab -e
# Belirli kullanıcının crontab'ını düzenle (root gerektirir)
crontab -u kullanici_adi -e
# Mevcut crontab'ı listele
crontab -l
# Crontab'ı sil (dikkatli kullanın!)
crontab -r
crontab -r komutu tüm cron görevlerinizi siler ve geri alınamaz. Silmeden önce crontab -l > crontab_yedek.txt ile yedek alın.
# crontab -e komutunu çalıştırın
crontab -e
# Editör seçimi sorulursa nano'yu seçin (1 numaralı seçenek)
# Dosyanın sonuna görevinizi ekleyin:
30 2 * * * /home/kullanici/backup.sh
# Kaydet ve çık: Ctrl+X, Y, Enter (nano için)
Sistem geneli cron görevleri için /etc/cron* dizinleri kullanılır:
# Dizin yapısı
/etc/crontab # Ana sistem crontab dosyası
/etc/cron.d/ # Uygulama cron dosyaları
/etc/cron.hourly/ # Saatlik çalışan betikler
/etc/cron.daily/ # Günlük çalışan betikler
/etc/cron.weekly/ # Haftalık çalışan betikler
/etc/cron.monthly/ # Aylık çalışan betikler
# /etc/crontab formatı (kullanıcı alanı eklidir)
30 2 * * * root /usr/bin/backup.sh
# Debian/Ubuntu'da cron logları
sudo tail -f /var/log/syslog | grep CRON
# RHEL/CentOS'ta
sudo tail -f /var/log/cron
# journald ile
sudo journalctl -u cron -f
sudo journalctl -u crond -f
# Hem stdout hem stderr'i dosyaya yönlendir
30 2 * * * /usr/bin/backup.sh >> /var/log/backup.log 2>&1
# Sadece hataları kaydet
30 2 * * * /usr/bin/backup.sh 2>> /var/log/backup-errors.log
# Çıktıyı tamamen sustur
30 2 * * * /usr/bin/backup.sh > /dev/null 2>&1
Log dosyalarının zamanla büyümemesi için logrotate ile döndürme yapılandırın.
Cron, kullanıcı kabuğunun ortam değişkenlerini miras almaz. PATH gibi değişkenleri açıkça tanımlayın:
# crontab dosyasının başına ekleyin
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
SHELL=/bin/bash
# veya komutta tam yol kullanın
30 2 * * * /usr/bin/python3 /home/user/script.py
# Betiğe çalıştırma izni verin
chmod +x /home/kullanici/backup.sh
# İzinleri kontrol edin
ls -la /home/kullanici/backup.sh
# Cron görevinde çalışma dizinini açıkça belirtin
30 2 * * * cd /var/www/html && php artisan schedule:run
# veya
30 2 * * * /bin/bash -c 'cd /var/www/html && php artisan schedule:run'
# Cron servisinin çalışıp çalışmadığını kontrol et
sudo systemctl status cron # Debian/Ubuntu
sudo systemctl status crond # RHEL/CentOS
# Servisi yeniden başlat
sudo systemctl restart cron
# Betiği manuel olarak çalıştırarak test edin
bash /home/kullanici/backup.sh
# Cron ortamını simüle ederek test edin
env -i HOME=/root SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin /home/kullanici/backup.sh
# Cron çıktısını e-posta yerine dosyaya yönlendirin
MAILTO=""
30 2 * * * /home/kullanici/backup.sh >> /tmp/cron-test.log 2>&1
Cron, Linux sistem yönetiminin temel araçlarından biridir. Doğru sözdizimi, ortam değişkeni yönetimi ve loglama ile güvenilir otomasyon sağlayabilirsiniz. Görevlerinizi düzenli olarak crontab -l ile kontrol edin ve log dosyalarını izleyerek sorunları erken tespit edin.
En yaygın nedenler: betiğe çalıştırma izni verilmemiş (chmod +x), PATH ortam değişkeni tanımlı değil (cron kısıtlı ortamda çalışır), betik tam yol yerine göreli yol kullanıyor, veya cron servisi çalışmıyor. /var/log/syslog veya /var/log/cron dosyasını kontrol edin.
Görevin çıktısını bir log dosyasına yönlendirin: '30 2 * * * /script.sh >> /var/log/script.log 2>&1'. Ardından 'tail -f /var/log/script.log' ile izleyin. Ayrıca 'sudo grep CRON /var/log/syslog' ile cron loglarını kontrol edebilirsiniz.
@reboot özel kısayolunu kullanın: '@reboot /home/kullanici/startup.sh'. Bu komut, sunucu her başladığında otomatik olarak çalışır. Systemd servisi oluşturmak da daha güvenilir bir alternatiftir.
Crontab dosyasının başına 'MAILTO=""' satırını ekleyin. Veya her görevin sonuna '> /dev/null 2>&1' ekleyerek çıktıyı tamamen susturun.
Linux VDS sunucunuza SSH ile bağlanma adımları: PuTTY, Terminal, anahtar tabanlı kimlik doğrulama, Path Panel firewall kuralı ve güvenlik ipuçları.
Windows Server VDS sunucunuza Uzak Masaüstü (RDP) ile bağlanma adımları, NLA güvenlik ayarları, Path Panel firewall kuralı ve sorun giderme rehberi.
REXE panel üzerinden VDS sunucunuzun işletim sistemini değiştirme adımları, yedekleme önerileri, desteklenen Linux ve Windows Server sürümleri.