25.02.2020

COSLAT logları

5651 sayılı kanuna göre hotspot olarak kullanılan Coslat cihazı, üzerindeki logları hiç silmeden saklıyordu. KVKK kapsamında bu logların sadece son 6 ayını saklamamız gerekiyordu. Coslat'ın üzerinde bunu sağlayacak bir ayar bulamadım. Bunun için küçük bir script yazarak bunun periyodik olarak çalıştırılmasını sağladım.

Öncelikle Coslat üzerinde loglar /var/log/imzalikayitlar klasöründe 5651portal, 5651dhcp ve 5651url klasörlerinde saklanıyor. Linux find komutunun son 6 aydan daha eski dosyaları/klasörleri bulmak için şöyle bir kullanımı var:
find /var/log/imzalikayitlar/5651url -type d -mtime +180
Bu burada
-type d : sadece klasörleri bul
-mtime +180 : son değiştirilme tarihi 180 günden öncekileri bul. Artı işaretini kullanmadan 180 yazılırsa tam 180 gün önce değiştirileni bulur. -180 yazılırsa son 180 gün içinde değiştirilen dosyaları bulur.
Buna bir de -exec parametresini ilave edersek

find /var/log/imzalikayitlar/5651url -type d -mtime +180 -exec rm -rf {} +

bu şekilde 180 günden önce değiştirilmiş dosyaları silecektir. Ben bu satırı hem 5651dhcp hem de 5651portal alt klasörleri için de yaptım. Sonlandırma olarak \; yazınca dosyaları siliyordu, ama yine de dosyalar bulunamadı diye hata veriyordu. Bunun yerine +'yı kullandım. Nihayetinde /root altında coslat.sh dosyası oluşturup içine şu satırları ekledim:

find /var/log/imzalikayitlar/5651portal -type d -mtime +180 -exec rm -rf {} +
find /var/log/imzalikayitlar/5651dhcp -type d -mtime +180 -exec rm -rf {} +
find /var/log/imzalikayitlar/5651url -type d -mtime +180 -exec rm -rf {} +

Sonra da bir zamanlanmış görev oluşturabilmek için
# crontab -e

komutunu vererek boş bir editör sayfasını açılmasını sağlayarak içine şu satırı girdim:

1 0 1 * * sh /root/coslat.sh

Burada sırasıyla:
1: dakika (0-59)
0: saat (0-23)
1: Ayın kaçıncı günü (0-31)
*: Hangi ay (0-12 [12:Aralık])
*: Haftanın günü (0-7 [7:Pazar])
yani kısaca her ayın 1'inde saat 00:01'de /root/coslat.sh komutunu sh ile çalıştır diyorum. Kullandığımız komut bir parametreye ihtiyaç duyuyorsa bunu satırın devamına yazabiliriz.

2024-12-05 ek: SSH ile bağlanmak için

ssh admin@IP-adresi

yazmak yetmeyebilir. Eğer

ssh no matching host key type found. Their offer: ssh-rsa,ssh-dss

gibi bir hata alıyorsak ssh ile bağlanırken 

-oHostKeyAlgorithms=+ssh-dss

eklemek çözümlerden biri olabilir. Yani tam bağlantı komutu şöyle birşey olmalı:

ssh admin@IP-adresi -oHostKeyAlgorithms=+ssh-dss

Bağlandıktan sonra shell'e geçmek için

shell

yazmak gerekcek.

[1] https://stackoverflow.com/questions/6085156/using-semicolon-vs-plus-with-exec-in-find
[2] https://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/