user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 31-05-2015 00:19:44

WarLocG
#! modo de compet

Petit script python avec netstat pour conky

Le script consiste a simplement assembler un retour de la commande netstat -tun de manière la plus condensée afin de s'afficher correctement dans un conky.

Hors conky, l'usage est la suivante:

warlocg@linux:~$ python pyConky-netstat.py
*** (1)     | 194.78.0.18:443 (1)       | *** (1)
74.125.136.95:443 (1)     | 194.78.0.95:443 (1)       | 198.23.69.198:8001 (1)   
194.78.0.18:80 (1)        | 194.78.99.45:443 (1)      | 46.51.197.89:443 (1)     
194.78.99.18:443 (1)     
warlocg@linux:~$ python pyConky-netstat.py 2
*** (1)     | 194.78.0.18:443 (1)     
*** (1)  | 74.125.136.95:443 (1)   
194.78.0.95:443 (1)       | 198.23.69.198:8001 (1)   
194.78.0.18:80 (1)        | 194.78.99.45:443 (1)     
46.51.197.89:443 (1)      | 194.78.99.18:443 (1)

PS: Ne vous amusez pas rechercher des IP sensibles dedans j'ai édité la sortie

from subprocess import check_output
import sys, re

if (len(sys.argv) > 1) and re.match('^[\d]{1,2}',sys.argv[1]):
   size=int(sys.argv[1])
else:
   size=3

cmd='netstat -tun | grep ESTABLISHED | awk \'{print $5}\' | uniq -c | awk \'{print $2$3$4" ("$1")"}\''
lines=check_output(cmd,shell=True).split('\n')
msg = ''
for s in range(len(lines)-1):
   if s % size == 0:
      msg += '%-25s' % (lines[s])
   else:
      msg += ' | %-25s' % (lines[s])
   if s % size == (size - 1):
      msg += '\n'
print(msg)

Résultat en image dans mon conky:
1433024871.png

Avec un remerciement spécial à CheckFX pour son pix, celui de toile-libre et celui de cyber-nux ayant eu des problèmes lors de l'upload.


Avant de poser vos questions, jeter un oeil ici
Mon CodeVault et Wiki : ici
Les messages privés envers le staff sont uniquement pour les cas d'urgence ou affaires privées (personnelles). Les demandes se feront exclusivement sur le forum. Merci de respecter cette clause sous peine de sanctions.

Hors ligne

#2 31-05-2015 07:32:56

IceF0x
#! Gourou Linux

Re : Petit script python avec netstat pour conky

J'ai une question concernant netstat ?

J'utilise ss -t en général plus clair pour moi, que veux dire le (1) à la fin de la ligne ?

j'ai une différence si je fais

netstat -tun | grep ESTABLISHED | awk '{print $5}' | uniq -c | awk '{print $2$3$4" ("$1")"}'

Et si je fais

ss -t | grep ESTAB | awk '{print $5}'

D’où provient le (1) ? est-ce uniq qui le génère ? à quoi sert son affichage ?

Si je fais

netstat -tun | grep ESTABLISHED | awk '{print $5}' | uniq -c | awk '{print $2$3$4}'

J'ai la même réponse que ss -t


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

#3 31-05-2015 15:48:58

WarLocG
#! modo de compet

Re : Petit script python avec netstat pour conky

J'utilise ss -t en général plus clair pour moi, que veux dire le (1) à la fin de la ligne ?

Je ne suis pas trop familier avec ss, merci pour cette trouvaille. Le 1 est généré par uniq -c, le 1 affiche les doublons, si ca n'affiche que 1 c'est qu'il n'y a pas de doublons.
Petit exemple:

warlocg@linux:~$ for i in a a a a;do echo $i; done
a
a
a
a
warlocg@linux:~$ for i in a a a a;do echo $i; done | uniq
a
warlocg@linux:~$ for i in a a a a;do echo $i; done | uniq -c
      4 a
warlocg@linux:~$ for i in a a a a;do echo $i; done | uniq -c | awk '{print $2" -> "$1}'
a -> 4


Avant de poser vos questions, jeter un oeil ici
Mon CodeVault et Wiki : ici
Les messages privés envers le staff sont uniquement pour les cas d'urgence ou affaires privées (personnelles). Les demandes se feront exclusivement sur le forum. Merci de respecter cette clause sous peine de sanctions.

Hors ligne

#4 31-05-2015 15:50:38

IceF0x
#! Gourou Linux

Re : Petit script python avec netstat pour conky

Oki, je peux le virer alors smile merci pour l'info


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

Pied de page des forums