Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/08/2007, à 07:30

Vergeylen

[Résolu][Débutant] Récupérer des variables de /proc/net/dev

Bonjour,

Je suis débutant en script Bash et je souhaiterais faire un petit utilitaire de partage de connexion réseau.
Pour l'instant, cela fonctionne très bien (je le posterai prochainement) mais uniquement pour les machines ayant les mêmes noms d'interfaces réseaux que moi (eth0, wlan0,...). Je souhaiterais, dans mon script, aller récupérer les noms des interfaces de la machine sur lequel il est lancé, et déterminer quelle interface est de quelle nature (wifi =eth1, Lan=eth0,...).

J'ai pas mal cherché dans la doc et j'ai trouvé (je crois) deux pistes intéressantes:

1) cat /proc/net/dev me donne un tableau comme celui-ci:

Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:    4108      60    0    0    0     0          0         0     4108      60    0    0    0     0       0          0
  eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth1:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  ppp0:1135348449 1680445    0    0    0     0          0         0 1027582727 1744341    0    0    0     0       0          0

N'y aurait-il pas moyen de récupérer les noms des variables des interfaces actives?


2) Pour connaitre l'interface sans fil il existe /proc/net/wireless :

Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 21
  eth1: 0000    0.    0.    0.       0      0      0      0      0        0

Si la récupération de ces données est possible (surement), n'aurais-je pas là une solution à mon problème?
Ou en existe-t-il une plus simple? J'ai aussi tenté de trouver où/comment Network Manager  stockait ces mêmes données (car il doit bien les stocker si l'on en croit gedit /etc/network/if-pre-up.d/wireless-tools) mais sans succès.

Si quelqu'un pouvait m'aider... ce serait super!

Dernière modification par Vergeylen (Le 12/08/2007, à 07:54)

Hors ligne

#2 Le 12/08/2007, à 07:52

HymnToLife

Re : [Résolu][Débutant] Récupérer des variables de /proc/net/dev

firas@Ana ~ $ cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth0:39633668   47399    0    0    0     0          0         0  5314491   42813    0    0    0     0       0          0
vmnet1:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
vmnet8:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth1:       0       0    0   96    0     0          0         0        0       0    0    0    0     0       0          0

Déjà, virer les deux premières lignes qui ne nous servent à rien :

firas@Ana ~ $ cat /proc/net/dev | tail -n +3
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth0:39642169   47460    0    0    0     0          0         0  5319654   42883    0    0    0     0       0          0
vmnet1:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
vmnet8:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth1:       0       0    0  109    0     0          0         0        0       0    0    0    0     0       0          0

Puis récupérer uniquement l'identifiant des interfaces :

firas@Ana ~ $ cat /proc/net/dev | tail -n +3 | cut -d ":" -f 1
    lo
  eth0
vmnet1
vmnet8
  eth1

Et voilà smile Merci, les coreutils !


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#3 Le 12/08/2007, à 07:54

Vergeylen

Re : [Résolu][Débutant] Récupérer des variables de /proc/net/dev

Oh Yes, je rêve! Tout bon ça!

Merci beaucoup HymnToLife! cool C'est exactement ça qu'il me fallait! big_smile

Et hop, un petit résolu dans l'entête! smile

Daniel V.

Dernière modification par Vergeylen (Le 12/08/2007, à 08:05)

Hors ligne

#4 Le 12/08/2007, à 08:13

HymnToLife

Re : [Résolu][Débutant] Récupérer des variables de /proc/net/dev

Ce n'est pas moi qu'il faut remercier mais tous les gens qui ont codé ces petits outils qui nous facilitent tellement la vie. En l'occurence, pour cat, Torbjorn Granlund et Richard M. Stallman, pour tail, Paul Rubin, David MacKenzie, Ian Lance Taylor et Jim Meyering, et pour cut, David Ihnat, David MacKenzie et Jim Meyering.

Chapeau à eux gentleman.gif


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne