手动启动的这项rtcwake
工作工作正常:
$ sudo rtcwake -m no -u -t $(date +%s -d 'tomorrow 07:30')
但似乎没有作为root
cron 作业运行:
$ sudo crontab -l
32 7 * * * rtcwake -m no -u -t $(date +%s -d 'tomorrow 07:30')
如果我用以下命令记录命令
$ sudo crontab -l
32 7 * * * rtcwake -m no -u -t $(date +%s -d 'tomorrow 07:30') &> /home/me/path/to/dir/crond.log
我得到一个空的日志文件。而 的主人crond.log
是我,而不是root
。 (编辑1:事实并非如此,我在几次测试中犯了错误)。
这里到底是什么问题?
编辑2:感谢 @αГsнιη 的回答,正确的 cronjob 如下(使用 创建sudo crontab -e
):
$ sudo crontab -l
32 7 * * * /usr/sbin/rtcwake -m no -u -t $(date +\%s -d 'tomorrow 07:30') &> /home/me/path/to/dir/crond.log
答案1
关于你的 cronjob 的两件事:
%
应该被转义,\%
因为这是 crontab 的特殊字符并且意味着换行符。始终使用完整/绝对路径编写命令,因为 crontab 不会读取 shell 的
PATH
变量。