我想每天凌晨 1:00 使用 cron 停止 Linux。
我尝试的是:sudo -i
,crontab -e
然后00 01 * * * shutdown -h now
在终端中。
我尝试了很多类似的命令00 01 * * * poweroff
,但这些命令从不起作用。我用保存crontab
,ctrl 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>
。默认情况下,电子邮件将发送到root
root 帐户。我更喜欢使用别名(通常在 中定义/etc/aliases
)。别名允许我将电子邮件发送给多个管理员,而不仅仅是一个人。
要成为 root,我使用以下命令:
sudo su -
我发现它比许多其他解决方案更简洁。然后,您可以使用以下命令编辑crontab
root 用户的:
crontab -e
正如您在问题中所展示的那样。
否则,前导零是大概好的。我从来没有把它们放在那里,而且例子也没有显示出来。为了以防万一,我会尝试不放它们,就像我上面展示的那样。
如需更多信息,我建议您阅读 crontab 手册:
man crontab
man 5 crontab
第一个是关于命令行。
第二个是关于文件格式的。他们讨论了 shell 变量。PATH
、MAILTO
等等。很值得一读。
答案2
试试他的网站
http://cron.schlitt.info
要知道这是否是您的命令或时间配置,请尝试init 0
(关闭电源)和init 6
(重新启动)。