Skip to content

lldp raporunda temizlik

networkteki routerlar üzerinde lldp raporları aldığınızı düşünün.. tüm cihazlardan alınan raporlar birleştirildiğinde baslangic ve bitis router bilgileri yer değişmiş olsada bir mükerrerlik olacaktır..

elimizdeki tablo kabaca ağıdaki şekilde olacaktır…

idbaslangic_ne_ismibaslangic_interface_ipbitis_ne_ismibitis_interface_ip
1router_a10.10.10.1router_c10.10.10.2
2router_c10.10.10.2router_a10.10.10.1
3router_b10.10.10.3router_d10.10.10.4
4router_d10.10.10.4router_b10.10.10.3

sqlite de bu durumdaki linkleri tespit etmek için aşagıdaki sorguyu

SELECT a.id AS id1, b.id AS id2,
       a.baslangic_ne_ismi, a.baslangic_interface_ip,
       a.bitis_ne_ismi, a.bitis_interface_ip
FROM network_link a
JOIN network_link b
  ON a.baslangic_ne_ismi = b.bitis_ne_ismi
 AND a.baslangic_interface_ip = b.bitis_interface_ip
 AND a.bitis_ne_ismi = b.baslangic_ne_ismi
 AND a.bitis_interface_ip = b.baslangic_interface_ip
 AND a.id < b.id;

aynı olduğunu düşünülen verilerden yüksek idli olan silmek için ise aşagıdaki sorguyu kullanabilirsiniz.

DELETE FROM network_link
WHERE id IN (
    SELECT b.id
    FROM network_link a
    JOIN network_link b
      ON a.baslangic_ne_ismi = b.bitis_ne_ismi
     AND a.baslangic_interface_ip = b.bitis_interface_ip
     AND a.bitis_ne_ismi = b.baslangic_ne_ismi
     AND a.bitis_interface_ip = b.baslangic_interface_ip
     AND a.id < b.id
);

sonucta elde edeceğimiz tablo aşagıdaki şekilde olacaktır.

idbaslangic_ne_ismibaslangic_interface_ipbitis_ne_ismibitis_interface_ip
1router_a10.10.10.1router_c10.10.10.2
3router_b10.10.10.3router_d10.10.10.4

sqlite-web

sqlite ile çalışırken bir ide ihtiyacınız olursa ve progralama diliniz python ise web tabanlı sqlite-web isimli basit bir çözüm mevcut. kurulum için

pip install sqlite-web

ve kullanım için ise

sqlite_web veritabani.db -H 0.0.0.0 -p 8080

yeterli olacaktır. sqlite-web flask tabanlı olduğu ihtiaç duyulan kütüphane sayısı fazla olabilir. mevcut projelerinizi bozmamak adına virtualenv ile çalışılması tavsiye edilmektedir.

proje sitesi : https://github.com/coleifer/sqlite-web

Back To Top