Skip to content

securecrt commands manager e komut listesi eklemek

ağ yönetiminde ssh client uygulaması olarak securecrt oldukça popülerdir. eğer sizde securecrt kullanıyor ve kullanmayı planlıyorsanız network yönetimi sırasında commands manager aracı oldukça işinize yarayacaktır.

commands manager altıda istediğiniz komut tanımlamalarını yapabiliyor ve tek tıkla bu komutu aktif oturuma gönderebilirsiniz.. tasarım sırasında ağaç yapısı desteklemesi sayesinde kategorize edilmiş olarak komutları ekleyebilirsiniz…

tüm ihtiyacınız olabilecek komutları tek tek eklemez biraz yorucu olabilir.. bu noktada hazırladığım python scripti paylaşmacağım.. öncelikle ekleyeceğimiz komutları aşagıdaki formatta excel dosyasında hazırlıyoruz. vendor ve category olarak bir ağaç yapısı tasarladık.

commands.xlsx

Vendor Category Command
nokia bgp show router bgp summary
nokia bgp show router bgp neighbor
nokia switch show ethernet-service port 1/3
huawei display ip interface brief
zte show ip interface brief loopback0

xml_create.py

import pandas as pd
import xml.etree.ElementTree as ET
from xml.dom import minidom

def create_securecrt_xml(excel_file_path, output_xml_path):
    # Excel dosyasını oku ve NaN değerleri boş string ile değiştir
    df = pd.read_excel(excel_file_path).fillna("")
    
    # Ana XML yapısını oluştur
    root = ET.Element("VanDyke", version="3.0")
    commands_root = ET.SubElement(root, "key", name="Commands")
    
    # Vendor gruplarına göre işle
    for vendor in df["Vendor"].unique():
        if not vendor:  # Vendor boşsa atla
            continue
            
        vendor_key = ET.SubElement(commands_root, "key", name=str(vendor))
        
        # Kategoriye göre komutları grupla
        vendor_data = df[df["Vendor"] == vendor]
        for category in vendor_data["Category"].unique():
            if pd.isna(category) or category == "":  # Kategori boşsa genel komutlara ekle
                continue
                
            category_data = vendor_data[vendor_data["Category"] == category]
            category_key = ET.SubElement(vendor_key, "key", name=str(category))
            commands_key = ET.SubElement(category_key, "key", name="__Commands__")
            default_array = ET.SubElement(commands_key, "array", name="Default")
            
            # Komutları ekle
            for _, row in category_data.iterrows():
                if not row["Command"] or pd.isna(row["Command"]):
                    continue
                command_str = f"SEND,{row['Command']},{row['Command']},,,0,1,{row['Command']},"
                ET.SubElement(default_array, "string").text = command_str
        
        # Vendor için genel komutlar (kategori yoksa)
        general_commands = vendor_data[vendor_data["Category"].isna() | (vendor_data["Category"] == "")]
        if not general_commands.empty:
            commands_key = ET.SubElement(vendor_key, "key", name="__Commands__")
            default_array = ET.SubElement(commands_key, "array", name="Default")
            for _, row in general_commands.iterrows():
                if not row["Command"] or pd.isna(row["Command"]):
                    continue
                command_str = f"SEND,{row['Command']},{row['Command']},,,0,1,{row['Command']},"
                ET.SubElement(default_array, "string").text = command_str
    
    # XML'i düzgün formatla ve kaydet
    xml_str = ET.tostring(root, encoding="utf-8")
    dom = minidom.parseString(xml_str)
    # toprettyxml encoding="utf-8" belirtilirse bytes döndürür, biz manuel yazıyoruz
    body = dom.toprettyxml(indent="\t")
    # toprettyxml'in ürettiği ilk satırı (<?xml ...?>) çıkar, yerine istediğimizin koy
    lines = body.splitlines()
    lines[0] = '<?xml version="1.0" encoding="UTF-8"?>'
    # Boş satırları temizle (toprettyxml bazen ekstra boş satır ekler)
    clean_lines = [l for l in lines if l.strip() != ""]
    pretty_xml = "\n".join(clean_lines) + "\n"
    
    with open(output_xml_path, "w", encoding="utf-8") as f:
        f.write(pretty_xml)

if __name__ == "__main__":
    excel_file_path = "commands.xlsx"  # Excel dosyası yolu
    output_xml_path = "securecrt_commands.xml"  # Çıktı XML dosyası yolu
    create_securecrt_xml(excel_file_path, output_xml_path)
    print(f"XML dosyası oluşturuldu: {output_xml_path}")

excel ve python dosyasını ayını dizinde olacak şekilde çalıştırırsak aynı dizinde securecrt_commands.xml adından bir xml dosyası oluşturulacaktır.

<?xml version="1.0" encoding="UTF-8"?>
<VanDyke version="3.0">
	<key name="Commands">
		<key name="nokia">
			<key name="bgp">
				<key name="__Commands__">
					<array name="Default">
						<string>SEND,show router bgp summary,show router bgp summary,,,0,1,show router bgp summary,</string>
						<string>SEND,show router bgp neighbor,show router bgp neighbor,,,0,1,show router bgp neighbor,</string>
					</array>
				</key>
			</key>
			<key name="switch">
				<key name="__Commands__">
					<array name="Default">
						<string>SEND,show ethernet-service port 1/3,show ethernet-service port 1/3,,,0,1,show ethernet-service port 1/3,</string>
					</array>
				</key>
			</key>
		</key>
		<key name="huawei">
			<key name="__Commands__">
				<array name="Default">
					<string>SEND,display ip interface brief,display ip interface brief,,,0,1,display ip interface brief,</string>
				</array>
			</key>
		</key>
		<key name="zte">
			<key name="__Commands__">
				<array name="Default">
					<string>SEND,show ip interface brief loopback0,show ip interface brief loopback0,,,0,1,show ip interface brief loopback0,</string>
				</array>
			</key>
		</key>
	</key>
</VanDyke>

xml dosyası oluşturktan sonra aşagıdaki adımları izlerek xml dosyasını securecrt içine import edeceğiz.

github deposu için

https://github.com/ferhatcicek/securecrt-commands-manager-xml-create

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

Excel’de hücreler içindeki boş satırları temizlemek

Bunun için aşagıdaki adımlar izlenebilir.. en kolay yöntemi budur.

  • Tüm hücreleri seç (CTRL+A veya sadece ilgili sütunu seç).
  • CTRL + H tuşlarına bas (Bul ve Değiştir).
  • “Bul” kısmına: CTRL tuşuna basılı tutarak J tuşuna bas → satır sonu karakteri (görünmez).
  • “Değiştir” kısmına: Hiçbir şey yazma (boş bırak).
  • Tümünü Değiştir butonuna tıkla.

bir video nun başlangıcından belirli bir süreyi kesmek

video düzenleyici yazılımlar ile bir video üzerinde istenilen alanlar kesilebilir ancak en hızlı yöntem

ffmpeg.org

adresinden işletim sisteminize uygun ffmpeg indirip kurmak ve aşagıdaki komut yapısını kullanmak olacaktır.

ffmpeg.exe -i 1.mp4 -ss 15 -c copy 1_kesilmis.mp4

bu komut 1.mp4 isimli videonun ilk 15 saniyesini keserek 1_kesilmis.mp4 olarak kaydetmesini sağlamaktadır..

güncel bir php sürümü yükledikten sonra unutulması gerekenler

linux tabanlı bir sistemden php + apache ikilisinde yeni bir php sürümü yüklenince güncel php sürümünü kullanmak için eski sürümü pasif ederek yeni sürümü aktif etmek ihtiyacı bulunmaktadır.

sudo a2dismod php* 
sudo a2enmod php8.2 
sudo systemctl restart apache2 

excel formülleri içinde çift tırnak ” kullanımı

excel formulleri kullanıyorsanız ve elde etmek istediğiniz textler içierinde çift tırnak olması gerekiyorsa en sağlam ve sorunsuz sonuç için ihtiyaç olan yerlerde

UNICODEKARAKTERİ(34)
CHAR(34)

kullanımı faydalı olacaktır. örnek bir formul yazalım

="/configure service epipe" &a1& "description "&UNICODEKARAKTERİ(34)&b1&UNICODEKARAKTERİ(34)

çıktımız ise

/configure service epipe 1 description "epipe-1"

şeklinde olacaktır.

işe yarar regex ler tek başlık altında

RegexTürAmaçTest Edilen Ortam
(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])IPtextin ipv4 formatına uygunluğunun kontrolü içinsecurecrt
^[^@\s]+@[^@\s]+.[^@\s]+$E-Mailx@x.xxx yapısında eposta kontrolünotepad+
.*\w+(:)textnotepad+ da çok satırlı bir text içinde bir metni aradığınızda arama sonucunda
Line xxx:
şeklinde satır numaraları yer almaktadır. elde edilen bu çıktıdan satır numaralarından kurtulmak için
notepad+
.\w[0-9]+.metin\”.*\w[0-9]+. $textbüyük boyutlu text doslarında içerisinde “metin” ifadesi geçen satırlardan kurtulmak içinnotepad+
[+[^#]+]
<+[^#]+>
textsecurert de huawei routerlar için system-view renklendirmesisecurecrt
[FG][a-z]0-9(?!\/)textsecurecrt de FastEthernet ve GigabirEthernet ifadeleriin renklendirilmesisecurecrt

yurt dışı sunucularda oyun oynayanlar için hız testi

yurt dışı sunucularda oyun oynuyorsanız, oyun sırasındasorun yaşayıp yaşamayacağınız hakkında genel bilgi edinmek adına aşagıdaki iki adresten hız testi yapabilirsiniz. en iyi sonucu tabiki oyun oynadığınız sunucunun test hizmeti varsa orası verecektir.

https://stadia.google.com/speedtest

https://speed.measurementlab.net/#/

benzer senaryolarda lokal bağlantınız ne kadar iyi olursa olsun sonuçta yurt dışına erişmeniz gerekiyor. bir çok parametreniz düşük görülecektir.

securecrt uygulamasında anahtar kelime vurgulama yaparak ekran görüntüsünü renklendirmek

securecrt uygulamanı bir şekilde kullanıyorsanız uygulamayı daha kullanışlı hale getirmek uygulayacağınız yöntemlerden bir taneside “keyword highlighting” kullanmaktadır..

artık neredeyse tüm ssh client uygulamalarında mevcut olan ve “anahtar kelime vurgulama” olarak çevirilecek bu özellik securecrt ekran çıktılarıda bazı kelimeleri renklendirmenizi sağlamaktadır.

securecrt genel regex desteğini bu özellik içinde sunmaktadır.

şimdi basit örnek yapalım… öncelikle options altında “edit default session” menusu açıyoruz.

açılan aktif oturum ayarlarımız için sol taraftaki menuden “keyword highlighting” i seçiyoruz… burada neim network diye bir liste tanımladığım ve onun altında bazı keywordlar eklediğim görülmektedir. sizde kendinize uygun yeni bir liste oluşturabilirsiniz. veya mevcutta bir liste varsa onun üzerinde güncelleme yapabilirsiniz.

bu örnekte çıktımızda ip bilgilerinin kırmızı olarak renklendirmesini istediğimi düşünelim.

ip bilgisi için doğru regex i yazmalıyız… regex konusunda tecrübeniz yoksa arama motorlarında konu hakkında arama yaparak hazır regexlere ulaşabilirsiniz.

ip için : (?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]) regexini kullanacağız.

Ekranda “new keyword:” karşısına regex i ekleyelim. bu alana giriş yaptıktan sonra + işeretini kullanılabilir olduğu görülmektedir.

Yazıdğımız idade regex içeriyorsu “regular expression” seçeneğinide seçerek + tuşuna basıyoruz.

+ tuşuna bastıktan sonra yeni ifademizin keyword listesine eklendiğini görebiliriz..listeye eklendikten sonra üzerine çift tıklayarak veya sağ tarafta yer alan genel olarka konfigürasyon veya özellikler anlamına gelen dişli resmine tıklarak tekrardan düzenleme yapabilir veya securecrt in sunduğu ilave özellikler üzerin değiştirebilirsiniz.

şimdi iseyaptığımız değişikliğin işe yarayıp yamadığını görelim…yeni bir oturum açarak google.com adresine ping atalım.. aşagıdaki çıktıda görüleceği üzere artık ip adresleri kırmızı olarak renklendirilmektedir.

Back To Top