Cron

ifconfig up 不會從 cron 執行

  • February 18, 2018

我正在嘗試將Scott Lowe 的創建命名空間指南關於在兩個介面之間轉發流量的答案結合起來。

我使用 cron @reboot 指令在每次重新啟動時執行這個腳本:(我正在使用該腳本,因為這些命令似乎都不會在重新啟動後持續存在。)

# Setup VPN
ip netns add vpnspace
ip link add vpnopen type veth peer name vpnbind
ip link set vpnopen netns vpnspace
ip netns exec vpnspace ifconfig vpnopen 10.0.0.1/24 up

當我使用手動執行腳本時sudo,它執行得很好。但是,當腳本由 cron 執行時,第四行 ,ip netns exec vpnspace ifconfig vpnopen 10.0.0.1/24 up不會執行。為什麼會這樣?我如何讓它執行?

TL;DR: ifconfig vpnopen 10.0.0.1/24 up在命名空間內由 cron 呼叫時不執行

=============

說明:

  1. 我的 cron 工作是@reboot /home/ubuntu/startupscripts/rootscripts.sh
  2. 上面給出的程式碼是 shell 腳本的第一部分,稱為
  3. 通過“不執行”,我的意思是如果我sudo ip netns exec vpnspace ifconfig在終端中執行命令來檢查 IP 地址是否被調出,終端會返回一個空白輸出。我嘗試通過附加記錄輸出>>rootscripts.log,但沒有記錄任何內容,也沒有返回錯誤消息。

cron 命令通常使用預設路徑執行。雖然 ip 通常位於 /bin 中,但 ifconfig 最常位於 /sbin 中。. . 所以嘗試將 /sbin/ifconfig 放在你的命令行中。

引用自:https://serverfault.com/questions/897658