Zend 02.07.2012 10:57
Есть вопрос! — Как узнать есть линк на интерфейсе или нет?
В винде вставляешь сетевой кабель появляется сообщение вида "Сетевой кабель подключен" и красный крестик с соответствующего интерфейса снимается. Если отключить кабель все происходит с точностью до наоборот, а как узнать подключен кабель или нет из под линукса?
Не не так. Но вы натолкнули меня на правильный ответ:
Если подключить кабель, то RUNNING присутствует, если кабель отключить, то RUNNING отсутствует. Как видите Scope:Link присутствует и там и там.
eth0 Link encap:Ethernet HWaddr 88:ae:1d:dd:5d:d3
inet addr:192.168.24.24 Bcast:192.168.24.255 Mask:255.255.255.0
inet6 addr: fe80::8aae:1dff:fedd:5dd3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:169500 errors:0 dropped:2058 overruns:0 frame:0
TX packets:107211 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:113106807 (113.1 MB) TX bytes:74748715 (74.7 MB)
Interrupt:46 Base address:0x4000
inet addr:192.168.24.24 Bcast:192.168.24.255 Mask:255.255.255.0
inet6 addr: fe80::8aae:1dff:fedd:5dd3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:169500 errors:0 dropped:2058 overruns:0 frame:0
TX packets:107211 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:113106807 (113.1 MB) TX bytes:74748715 (74.7 MB)
Interrupt:46 Base address:0x4000
eth0 Link encap:Ethernet HWaddr 88:ae:1d:dd:5d:d3
inet addr:192.168.24.24 Bcast:192.168.24.255 Mask:255.255.255.0
inet6 addr: fe80::8aae:1dff:fedd:5dd3/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:169577 errors:0 dropped:2058 overruns:0 frame:0
TX packets:107219 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:113114277 (113.1 MB) TX bytes:74749418 (74.7 MB)
Interrupt:46 Base address:0x4000
inet addr:192.168.24.24 Bcast:192.168.24.255 Mask:255.255.255.0
inet6 addr: fe80::8aae:1dff:fedd:5dd3/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:169577 errors:0 dropped:2058 overruns:0 frame:0
TX packets:107219 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:113114277 (113.1 MB) TX bytes:74749418 (74.7 MB)
Interrupt:46 Base address:0x4000
Если подключить кабель, то RUNNING присутствует, если кабель отключить, то RUNNING отсутствует. Как видите Scope:Link присутствует и там и там.
По-современному можно сделать ip l и посмотреть, есть ли статус LOWER_UP. LOWER_UP -- это именно состояние того, воткнут ли кабель.
Ну это фактически тоже самое что происходит с ifconfig "только другими словами" :)
Таким образом должно помочь: