ss - linux soket istatistikleri yardımcı programı çıkış biçimi


21

Seçenekle ssbirlikte kullanıldığında -p, user/pid/fdsütun belirli bir çizginin altına atlar. Örneğin, aslında gördüğüm şey bu:

# ss -nulp4
State      Recv-Q Send-Q                                           Local Address:Port                                             Peer Address:Port 
UNCONN     0      0                                                            *:20000                                                       *:*      
users:(("perl",pid=9316,fd=6))
UNCONN     0      0                                                            *:10000                                                       *:*      
users:(("perl",pid=9277,fd=6))
UNCONN     0      0                                               192.168.100.10:53                                                          *:*      
users:(("named",pid=95,fd=517),("named",pid=95,fd=516))
UNCONN     0      0                                                    127.0.0.1:53                                                          *:*      
users:(("named",pid=95,fd=515),("named",pid=95,fd=514))

Tercih edilen çıktı biçimlendirmesi :

# ss -nulp4
State      Recv-Q Send-Q                                           Local Address:Port                                             Peer Address:Port 
UNCONN     0      0                                                            *:20000                                                       *:*      users:(("perl",pid=9316,fd=6))
UNCONN     0      0                                                            *:10000                                                       *:*      users:(("perl",pid=9277,fd=6))
UNCONN     0      0                                               192.168.100.10:53                                                          *:*      users:(("named",pid=95,fd=517),("named",pid=95,fd=516))
UNCONN     0      0                                                    127.0.0.1:53                                                          *:*      users:(("named",pid=95,fd=515),("named",pid=95,fd=514))

Satır sonu olmadığını doğrulamak için şunu denedim:

# ss -nulp4 | cat -A
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port $
UNCONN     0      0                         *:20000                    *:*      users:(("perl",pid=9316,fd=6))$
UNCONN     0      0                         *:10000                    *:*      users:(("perl",pid=9277,fd=6))$
UNCONN     0      0            192.168.100.10:53                       *:*      users:(("named",pid=95,fd=517),("named",pid=95,fd=516))$
UNCONN     0      0                 127.0.0.1:53                       *:*      users:(("named",pid=95,fd=515),("named",pid=95,fd=514))$

Ve aslında hiç olmadığını görebilirsiniz, ama şimdi, garip bir şekilde, çıktı biçimi olmasını istediğim gibi. Birisi burada neler olduğunu açıklayabilir mi? Tercih ettiğim biçimlendirmeyi nasıl başarabilirim?

Beni göç etmekten alıkoyan tek şey netstatbu ss.

Yanıtlar:


10

Neden vb.

ssLinux çekirdeğindeki iproute2 yardımcı programı koleksiyonunun bir parçası olarak, ioctl () isteği kullanır terminalin geçerli genişliğini almak için .

Ancak; tüm genişlik «diğer» için kullanılır alanlar ve işlem alanı bir sonraki satıra sıkıştırılır.

Bunu, örneğin (terminalde sınırlı olanlarla) ile görüntüleyebilirsiniz:

script ss.txt
ss -nlup4
exit

Sonra terminal pencerenizi genişletin ve cat ss.txt.

sebebi neden

ss -nulp4 | cat -A

«Çalışır» , yardımcı programın bir tty'ye yazıp yazmadığını tanımasıdır :

if (isatty(STDOUT_FILENO)) {

}

Kaynak koddaki önceki satırdan da görebileceğiniz gibi varsayılan genişlik 80 olarak ayarlanmıştır. Bu nedenle terminaliniz 130 sütunsa ve şunları yaparsanız:

ss -nulp4 | cat

çıktının bir tty'ye (ancak bir boruya) ait olmadığını ve diğer alanların 80 sütuna sıkıştırıldığını, işlem alanının ise bu 80 sütundan sonra yazıldığını kabul eder. Ancak terminaliniz 80 sütundan daha geniş olduğundan ve işlem girişi için yer olduğu için bir satırda görüntülenir.

Aynı şey örneğin:

ss -nulp4 > ss.txt

«Tercih ettiğim biçimlendirmeyi nasıl elde edeceğim» ile ilgili olarak, muhtemelen uygun olmayan bir yol (terminaline bağlı olarak) yönünde bir şey yapmaktır:

stty cols 100
ss -nlup4

Harika açıklama ve stty cols ayarı ile güzel hile. Çok teşekkürler!
monsune

Güzel bir açıklama, ancak kullanım column -ten basit yol gibi görünüyor.
pevik

18

Bunlardan biri çıktıyı değiştirmek için yararlı olabilir:

ss -ltunp | column -t 

1
Bu cevap üzerine bir yorum olmalı. Yorum eklemek için yeterince itibarınız var, lütfen kullanın.
grochmal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.