2016-03-30 32 views
2

Cisco aygıtlarının SSH'lerinin show komutlarının çıktısını almasını sağlayan bir uygulama yapıyorum. Bunu yapmak için pythonda paramiko modülünü kullanıyorum.SSH Pencere Boyutu paramiko'da nasıl etkilenir

Komut çıktısını plink ile karşılaştırırken, paramiko çıkışının kesildiğini bilmeliyiz. Engelsiz ve artan arabellek boyutu ile çalıştı ve yardımcı olmadı. Daha sonra, sadece window_size parametresiyle denedim ve işe yarayacak gibi görünüyor. Aşağıda

benim kodudur: Transport, default_window_size=2097152 için paramiko belgesinin gereğince

import paramiko 
sshclient = None 
try: 
    sshclient = paramiko.SSHClient() 
    sshclient.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
    sshclient.connect('mydevice', username='admin', password='admin12345') 
    chan = sshclient.get_transport().open_session(window_size=500000) 
    chan.settimeout(10800) 
    chan.exec_command('show tech-support fcip') 

    value = chan.recv(1024) 
    while value: 
     print(value) 
     value = chan.recv(1024) 

finally: 
    if sshclient: 
     sshclient.close() 

; 1597152, default_value'dan daha düşük.

da default_window_size=2097152 kısmi ölçüm değeridir: olduğu

Authentication (password) successful! 
[chan 0] Max packet in: 32768 bytes 
[chan 0] Max packet out: 32768 bytes 
Secsh channel 0 opened. 
[chan 0] Sesch channel 0 request ok 
EOF in transport thread 

nerede window_size=500000 gibi: window_size varsayılan değer olduğunda

Burada
Authentication (password) successful! 
[chan 0] Max packet in: 32768 bytes 
[chan 0] Max packet out: 32768 bytes 
Secsh channel 0 opened. 
[chan 0] Sesch channel 0 request ok 
[chan 0] EOF received (0) 
EOF in transport thread 

bu, olduğu gibi, kanal kapatılıyor görünüyor Sunucudan sonlandırma sinyalinden bile önce.

Uzmanlar, bana SSH'de window_size'un azaltılmış olmasının sonuçlarını bildirseler ve başvurumu nasıl etkiler?

cevap

0

window_size dosyasını değiştirerek, bir dönüş karakterinin girilmesinden önce bir satırın olabileceği maksimum uzunluğu etkilersiniz. Başvurunuz bazı ayrıştırmayı gerçekleştirmek gerektirir ve sen dizeleri daha az sıklıkla tahmin edilenden/daha bölünmüş ediliyor bulabilirsiniz

value.split('\n') 

gibi bir şey aramak isterseniz.