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
Back To Top