ifconfig up 无法从 cron 执行

ifconfig up 无法从 cron 执行

我正在尝试结合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不会执行。为什么会发生这种情况?我该如何让它执行?

总结: 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,但什么都没有记录,也没有返回任何错误消息。

答案1

cron 命令通常使用默认 PATH 执行。虽然 ip 通常位于 /bin 中,但 ifconfig 最常位于 /sbin 中……因此请尝试将 /sbin/ifconfig 放入命令行中。

相关内容