cron“@reboot”计划不执行网络配置脚本

cron“@reboot”计划不执行网络配置脚本

版本:Ubuntu 20.04.6 LTS

在我的 crontab 中,我有以下内容:

@reboot /home/<user>/startup.sh

其他输出:

<user>@eveng-gcp-v3:~$ ls -la | grep start
-rwxr-xr-x 1 root           root            154 Dec  3 11:57 startup.sh
<user>@eveng-gcp-v3:~$ pwd
/home/<user>

脚本:

<user>@eveng-gcp-v3:~$ cat startup.sh
ip address add 192.168.0.1/24 dev pnet9

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o pnet0 -s 192.168.0.0/24 -j MASQUERADE

这 3 个命令是准确的,并且在手动运行时按预期工作。

我如何确保它在启动时运行?

答案1

执行 cron 脚本时网络接口尚未准备好。延迟它:

@reboot sleep [time in seconds] && /home/<user>/startup.sh

答案2

我怀疑您是否可以执行您的脚本,因为它缺少“舍邦”。添加#!/bin/sh(或您最喜欢的 shell)。

此外,您还应该查看 syslog、orcron的日志、orroot的邮箱中的错误消息。

答案3

问题是我正在使用自己用户的 crontab,而普通用户无法运行@reboot作业。我使用 root 的 crontab ( sudo crontab -e) 代替,它按预期工作了!

感谢大家!

相关内容