Souci test /sys/class/net
Bonjour, j'ai besoin de tester deux paramètres dans /sys/class/net/. Le but de ce script est pour le moment de vérifier que les interfaces sont des interfaces réseau (pas de loopback ou de bond) et qu'elles sont PHYSICAL UP.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
#!/usr/bin/env python3
import os
path = '/sys/class/net/'
interface = os.listdir(path)
for f in interface:
index = os.path.join(path, interface, 'ifindex')
carrier = os.path.join(path, interface, 'carrier')
if index == '6' and carrier == '1':
print('Bonjour') |
Le souci étant :
Code:
1 2 3 4 5 6 7 8
| Traceback (most recent call last):
File "/root/test/./test.py", line 10, in <module>
index = os.path.join(path, interface, 'ifindex')
File "/usr/lib/python3.9/posixpath.py", line 90, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/lib/python3.9/genericpath.py", line 152, in _check_arg_types
raise TypeError(f'{funcname}() argument must be str, bytes, or '
TypeError: join() argument must be str, bytes, or os.PathLike object, not 'list' |
Je le comprends et pensais pouvoir le résoudre avec la boucle, sans succès. Avez-vous une idée ?