我想在 Linux 重启后运行一个命令,我发现可以使用 crontab 来完成。我想运行这个命令
sudo ifdown eth0 && sudo ifup -v eth0
在 crontab 上我可以这样做:
@reboot sudo ifdown eth0 && sudo ifup -v eth0
或者我需要将其存储在脚本中?
谢谢
答案1
在此之前,请注意以下几点:
- 不要
sudo
在 cron 作业中使用。而是编辑root
的 crontab 而不是您自己的,例如,sudo crontab -e
然后输入不带 的命令sudo
。 - 正如@mikewhatever 提到的,这是一个奇怪的用法
cron
,最好放在行/etc/rc.local
前exit 0
。 - 如果您准确地告诉我们您正在寻找的内容,我们可能会为您提供日志或配置选项(在启动时重新启动网络服务感觉有点不安全)。
- 在大多数系统上,
@reboot
硬关机或崩溃后也应该运行,但 cron 实现不同,所以 YMMV。我在不同的地方看到过断言两者的评论。
编辑(2016/02/17):删除了关于绝对路径的错误说明;感谢@muru
编辑(2016/10/17):增加关机说明
编辑(2017/09/11):修改了关机说明。对此不太确定。
答案2
您可以使用 crontab 来实现这一点,但如果使用sudo
,则需要一条NOPASSWD
规则来sudoers
执行此操作。(请参阅如何使用 sudo 命令运行 cron 任务。
/etc/rc.local
在该行之前编辑并添加这些命令会更简单exit 0
。