帮助从 root 运行 crontab

帮助从 root 运行 crontab

我正在使用 Mac OS X,无法运行 cron 任务。我输入以下内容:

$ sudo -i
$ crontab -e

然后我输入:

* * * * * root ifconfig en0 down > /dev/null
0 19 * * * root ifconfig en0 down > /dev/null
0  7 * * * root ifconfig en0 up > /dev/null

但没有成功,第一行是用于测试。我想让它关闭我的互联网。一旦我让它工作起来,我打算保留接下来的两行。

如果我在终端输入这个,互联网就会断线

ifconfig en0 down

为什么我的 cron 作业没有关闭互联网?

仅供参考:这是一个来自我如何编写一个 cron 任务来阻止我上网,从晚上 7 点到早上 7 点?(这样我就可以睡一觉了)大多数评论都是在嘲笑我。还有一些人尝试使用 cron 作业来解决问题。

答案1

在 crontab 中输入命令时,无需指定用户,因为每个用户都有自己的 crontab 存储在 /usr/lib/cron/tabs/ 中

你的 crontab 应该如下所示:
* * * * * /sbin/ifconfig en0 down > /dev/null
0 19 * * * /sbin/ifconfig en0 down > /dev/null
0 7 * * * /sbin/ifconfig en0 up > /dev/null

答案2

您有 wifi 路由器吗?您的机场是否仍开放?如果是,您也需要将其关闭。要么通过“系统偏好设置”->“网络”永久关闭它,要么使用 cron 命令执行相同操作。在我的计算机上,机场是 en1,但如果您不确定,我已经解释了如何检查您原始问题的答案。

另外要检查的是 crontab 文件顶部的路径。它必须提供对 ifconfig 命令的访问。

在终端上运行“whereis ifconfig”以找出 ifconfig 命令的位置,如果不存在,则将该路径添加到 crontab 文件顶部的路径命令中。

相关内容