journalctl -u sshd
komutunu çalıştırdığınızda, SSH servisi (sshd) ile ilgili logları görüyorsunuz. Bu loglar, sisteminizin journald servisi tarafından tutulur. Ancak, bu logları temizlemek istiyorsanız, aşağıdaki yöntemleri kullanabilirsiniz. journalctl ile doğrudan sadece SSH loglarını silmek mümkün olmadığından, tüm journal loglarını temizleme veya log yönetimini düzenleme yollarını açıklayacağım.
1. Tüm Journal Loglarını Temizleme
Eğer SSH loglarını temizlemek için tüm journal loglarını silmeye razıysanız, aşağıdaki adımları takip edebilirsiniz:
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
- –rotate: Mevcut journal loglarını arşivler.
- –vacuum-time=1s: 1 saniyeden eski tüm logları siler, yani pratikte tüm journal loglarını temizler.
Not: Bu komutlar, sadece SSH loglarını değil, sistemdeki tüm journal loglarını siler. Bu nedenle, diğer servislerin loglarına ihtiyacınız varsa dikkatli olun, çünkü bu işlem geri alınamaz.
2. Belirli Bir Zaman Aralığındaki Logları Silme
Eğer sadece eski logları temizlemek istiyorsanız, belirli bir zaman aralığından önceki logları silebilirsiniz. Örneğin, son 1 haftadan eski logları silmek için:
sudo journalctl --vacuum-time=1weeks
Bu komut, 1 haftadan eski tüm journal loglarını siler. Ancak, bu yöntem de SSH’ye özgü değil, tüm sistem loglarını kapsar.
3. Journal Loglarının Boyutunu Sınırlama
Logların otomatik olarak temizlenmesini sağlamak için journal loglarının boyutunu sınırlayabilirsiniz. Bunun için /etc/systemd/journald.conf dosyasını düzenleyin:
- Dosyayı açın:bash
sudo nano /etc/systemd/journald.conf
- Aşağıdaki satırları ekleyin veya düzenleyin:
[Journal] SystemMaxUse=50M RuntimeMaxUse=10M
- SystemMaxUse: Kalıcı journal loglarının maksimum boyutunu belirler (örneğin, 50 MB).
- RuntimeMaxUse: Geçici journal loglarının maksimum boyutunu belirler (örneğin, 10 MB).
- Değişiklikleri kaydedip dosyayı kapattıktan sonra journald servisini yeniden başlatın:bash
sudo systemctl restart systemd-journald
Bu ayar ile journal logları belirtilen boyutu aştığında, eski loglar otomatik olarak silinir. Böylece manuel temizleme yapmanıza gerek kalmaz.
4. SSH Loglarını Ayrı Bir Dosyaya Yönlendirme
Eğer sadece SSH loglarını temizlemek istiyorsanız, bu logları journald yerine ayrı bir dosyada tutmayı düşünebilirsiniz. Bunun için:
- SSH yapılandırma dosyasını açın:
sudo nano /etc/ssh/sshd_config
- Log seviyesini ayarlayın (örneğin):
LogLevel INFO
- Ardından, sistem loglama yapılandırmasını değiştirerek SSH loglarını ayrı bir dosyaya yönlendirin.
Örneğin, /etc/rsyslog.conf dosyasını açın:sudo nano /etc/rsyslog.conf
- Şu satırı ekleyin:
auth,authpriv.* /var/log/sshd.log
- Rsyslog servisini yeniden başlatın:
sudo systemctl restart rsyslog
- SSH servisini yeniden başlatın:
sudo systemctl restart sshd
Bu ayar ile SSH logları /var/log/sshd.log dosyasına yazılır ve bu dosyayı manuel olarak temizleyebilirsiniz:
sudo truncate -s 0 /var/log/sshd.log
Özet
- Hızlı Çözüm: Tüm journal loglarını temizlemek için sudo journalctl –rotate ve sudo journalctl –vacuum-time=1s komutlarını kullanın. Ancak bu, tüm sistem loglarını siler.
- Kısmi Temizleme: Eski logları silmek için sudo journalctl –vacuum-time=1weeks gibi bir komut kullanabilirsiniz.
- Otomatik Yönetim: Journal boyutunu sınırlamak için /etc/systemd/journald.conf dosyasını düzenleyin.
- Ayrı Dosya: SSH loglarını journald’den ayırıp ayrı bir dosyada tutarak sadece o dosyayı temizleyin.
Eğer sadece SSH loglarını silmek istiyorsanız, doğrudan bir yöntem olmadığı için ya tüm logları temizlemeniz ya da logları ayrı bir dosyaya yönlendirmeniz gerekir. İhtiyacınıza göre yukarıdaki yöntemlerden birini seçebilirsiniz!
Bir yanıt yazın