在 crontab 上启动时运行命令

在 crontab 上启动时运行命令

我想在 Linux 重启后运行一个命令,我发现可以使用 crontab 来完成。我想运行这个命令

sudo ifdown eth0 && sudo ifup -v eth0

在 crontab 上我可以这样做:

@reboot sudo ifdown eth0 && sudo ifup -v eth0

或者我需要将其存储在脚本中?

谢谢

答案1

在此之前,请注意以下几点:

  1. 不要sudo在 cron 作业中使用。而是编辑root的 crontab 而不是您自己的,例如,sudo crontab -e然后输入不带 的命令sudo
  2. 正如@mikewhatever 提到的,这是一个奇怪的用法cron,最好放在行/etc/rc.localexit 0
  3. 如果您准确地告诉我们您正在寻找的内容,我们可能会为您提供日志或配置选项(在启动时重新启动网络服务感觉有点不安全)。
  4. 在大多数系统上,@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

相关内容