Networking
啟動時檢查是否插入了網路電纜
我實際上想發布以下內容作為這個問題的答案:ifup eth0 timeout during boot。但我不確定這是正確的方法還是把事情搞砸的一種方式。
我們實際上可以通過執行命令來檢查網線是否連接到機器上,
grep "" /sys/class/net/eth0/carrier
插入網線時,上述命令輸出為1,未插入時,上述命令輸出為0。我在我的系統中測試了上述部分,它按預期工作得很好。
現在的問題在於如何在啟動時包含這個條件。我們可以將其包含在網路啟動文件中,該文件可以在啟動介面之前檢查此情況。在 RHEL 框中,該文件
/etc/sysconfig/network-scripts/ifcfg-eth0
用於啟動網路介面。所以,如果我把文件改成這樣,
cable=$(grep "" /sys/class/net/eth0/carrier) if $cable -eq 1 then #rest of the /etc/sysconfig/network-scripts/ifcfg-eth0 as it is. else break
但是,在提出這種方法之前,甚至在我的機器上嘗試之前,我的問題是:當服務啟動時,服務是否
/sys/class/net/eth0/carrier
準備就緒並可用?假設這種方法有效,如果我決定使用無線網路會有問題嗎?
不幸的是,介面必須為上述建議的方法工作。我按照問題中的建議對文件進行了更改,最終收到錯誤為“無效參數”。所以,我相信介面應該可以查詢有線連接是否可用。我還為這個答案找到了更多有用的資訊:如何檢測網路電纜/連接器的物理連接狀態?.
cat /sys/class/net/ethX
是迄今為止最簡單的方法。介面必須啟動,否則您將收到無效參數錯誤。
所以首先:
ifconfig ethX up
然後:
cat /sys/class/net/ethX