Ubuntu
ubuntu shell(sh)腳本缺少一些行
我為靜態路由創建了一些腳本,稱為“my.rc.route”,並將其放在 /etc/rc.local 上,因此每次伺服器重新啟動時,腳本都會在所有啟動過程之後執行。
發現系統隨機跳過了我的腳本中的某些行,我感到有點奇怪。
有人處理這種情況嗎?在哪裡跟踪/記錄閱讀?
我在這裡粘貼我的“my.rc.route”,Gnudiff 回答。
#!/bin/bash ip ro add table arieluna 10.254.254.248/29 dev lan proto kernel scope link src 10.254.254.254 ip ro add table arieluna 10.222.23.0/24 dev vlan17 proto kernel scope link src 10.222.23.1 ip ro add table arieluna 10.222.22.0/24 dev vlan16 proto kernel scope link src 10.222.22.1 ip ro add table arieluna 10.222.21.0/24 dev vlan15 proto kernel scope link src 10.222.21.1 ip ro add table arieluna 10.222.20.0/24 dev vlan14 proto kernel scope link src 10.222.20.1 ip ro add table arieluna 10.222.19.0/24 dev vlan13 proto kernel scope link src 10.222.19.1 ip ro add table arieluna 10.222.18.0/24 dev vlan12 proto kernel scope link src 10.222.18.1 ip ro add table arieluna 10.222.17.0/24 dev vlan11 proto kernel scope link src 10.222.17.1 ip ro add table arieluna 10.222.16.0/24 dev vlan10 proto kernel scope link src 10.222.16.1 ip ro add table arieluna 10.222.24.0/24 dev vlan18 proto kernel scope link src 10.222.24.1
@Redmumba 在這裡是正確的。如果您嘗試為尚未配置/啟動的介面添加 iptables 規則,那麼 iptables 將引發錯誤並且不會添加規則。在我看來,這聽起來就像您正在通過 NetworkManager 或類似的東西(取決於您的發行版)配置至少一個介面,並且該部分僅在使用者通過 GUI 登錄時發生(即在執行 rc.local 之後)。
如果你想讓它工作,你需要通過 /etc/network/interfaces 中的“up”命令(你在基於 Debian 的發行版上)或類似機制來執行腳本。
或者,您可以將介面配置為在引導時進行配置。在基於 Debian 的發行版中,這是通過將介面節中的“allow-hotplug”關鍵字替換為“auto”來完成的。其他發行版將為此使用其他機制,您必須閱讀相關的手冊頁以了解該怎麼做。