cron关机命令不起作用

cron关机命令不起作用

我想每天凌晨 1:00 使用 cron 停止 Linux。

我尝试的是:sudo -icrontab -e然后00 01 * * * shutdown -h now在终端中。

我尝试了很多类似的命令00 01 * * * poweroff,但这些命令从不起作用。我用保存crontabctrl 0 + enter然后按 ctrl X。当我即将离开控制台时,我没有看到任何错误,我只看到 crontab 已成功安装。

我正在使用 x2go 访问 Linux,但无法直接以 root 身份登录。当我尝试以 root 身份登录时,出现错误:

ttyname 失败,设备 ioctl 不合适

当我浏览我的文件时,我注意到我无法访问根文件夹,因为我没有权限。

我认为问题可能是我没有 root 访问权限,但sudo -i应该授予我 root 访问权限。我还尝试通过输入命令sudo passwd root然后输入 来启用 root 访问权限su root

这是我第一次使用 Linux,所以请尽可能详细地解释。

编辑:好的,我找到了解决方案,我只需要在所需时间前一小时设置命令。我不知道为什么,但它有效。感谢大家的帮助。

答案1

出于安全原因,CRON 使用非常小的 shell 环境。这包括最小的 PATH 和 HOME 变量。在大多数情况下,您希望对所有命令使用完整路径。

因此,我建议您首先运行:

$ which shutdown
/sbin/shutdown

现在您知道该命令的完整路径,并且您想在 CRON 定义中使用它:

0 1 * * * /sbin/shutdown -h now

如果您想要向 shell 添加变量(或者需要添加变量以运行某些命令),您可以在文件顶部添加或更新它们。例如:

PATH=/sbin:${PATH}
HOME=/root

0 1 * * * /sbin/shutdown -h now

请记住,空格和制表符的处理是不同的(有关详细信息,请参阅文档)。

一个经常更新的变量是MAILTO=<your-email>。默认情况下,电子邮件将发送到rootroot 帐户。我更喜欢使用别名(通常在 中定义/etc/aliases)。别名允许我将电子邮件发送给多个管理员,而不仅仅是一个人。

要成为 root,我使用以下命令:

sudo su -

我发现它比许多其他解决方案更简洁。然后,您可以使用以下命令编辑crontabroot 用户的:

crontab -e

正如您在问题中所展示的那样。

否则,前导零是大概好的。我从来没有把它们放在那里,而且例子也没有显示出来。为了以防万一,我会尝试不放它们,就像我上面展示的那样。

如需更多信息,我建议您阅读 crontab 手册:

man crontab
man 5 crontab

第一个是关于命令行。

第二个是关于文件格式的。他们讨论了 shell 变量。PATHMAILTO等等。很值得一读。

答案2

试试他的网站 http://cron.schlitt.info 要知道这是否是您的命令或时间配置,请尝试init 0(关闭电源)和init 6(重新启动)。

相关内容