crontab与rtcwake结合在一起使用怎么不起作用?

时间:2021-08-23 14:35:01
实验目的:希望通过crontab与rtcwake来实现定时唤醒计算机上的功能</br>
操作系统:Ubuntu 16
实验过程:
1.  首先,测试下面的命令是否有效:
引用
hper@hper-pc:~$ sudo rtcwake  -m no -t `date -d 20:31 +%s`
 
2. 以上命令可以在待机的前提下,于20:31唤醒计算机,没问题。
3. 接着,把以上命令放到/etc/crontab文件中,让系统于20:22执行rtcwake命令,如下:

引用
22 20 * * * root sudo rtcwake  -m no -t `date -d 20:31 +%s`
 

编辑好保存,手动待机(在20:22之前),静静的等到20:31。。。计算机一点反应都没有,始终没有唤醒,试了好多次都是如此。
4. tail 跟踪log(tail -f /var/log/cron.log ),日志如下:
Feb 23 20:20:02 hper-pc cron[689]: (*system*) RELOAD (/etc/crontab)
Feb 23 20:22:02 hper-pc CRON[5237]: (root) CMD (sudo rtcwake  -t `date -d 20:31 +)
Feb 23 20:22:02 hper-pc CRON[5236]: (CRON) info (No MTA installed, discarding output)


请问这是怎么回事,如何解决,谢谢大神。

4 个解决方案

#1


把输出重定向:
22 20 * * * root sudo rtcwake  -m no -t `date -d 20:31 +%s` >/dev/null 2>&1

crontab执行脚本时是不会直接输出错误信息,而是会以邮件的形式发送到邮箱里,如果没有安装邮件服务器,就会报这个错。

#2


引用 1 楼 cy309173854 的回复:
把输出重定向:
22 20 * * * root sudo rtcwake  -m no -t `date -d 20:31 +%s` >/dev/null 2>&1

crontab执行脚本时是不会直接输出错误信息,而是会以邮件的形式发送到邮箱里,如果没有安装邮件服务器,就会报这个错。

现在不是报错的问题,而是,为什么这条命令不执行的问题。

#3


引用 2 楼 jiller 的回复:
Quote: 引用 1 楼 cy309173854 的回复:

把输出重定向:
22 20 * * * root sudo rtcwake  -m no -t `date -d 20:31 +%s` >/dev/null 2>&1

crontab执行脚本时是不会直接输出错误信息,而是会以邮件的形式发送到邮箱里,如果没有安装邮件服务器,就会报这个错。

现在不是报错的问题,而是,为什么这条命令不执行的问题。

可以这样理解:因为无法发送信息或者无法显示输出,所有命令无法执行。
输出重定向后仍无法执行吗 ?

#4


是的。输出重定向后也不行。

#1


把输出重定向:
22 20 * * * root sudo rtcwake  -m no -t `date -d 20:31 +%s` >/dev/null 2>&1

crontab执行脚本时是不会直接输出错误信息,而是会以邮件的形式发送到邮箱里,如果没有安装邮件服务器,就会报这个错。

#2


引用 1 楼 cy309173854 的回复:
把输出重定向:
22 20 * * * root sudo rtcwake  -m no -t `date -d 20:31 +%s` >/dev/null 2>&1

crontab执行脚本时是不会直接输出错误信息,而是会以邮件的形式发送到邮箱里,如果没有安装邮件服务器,就会报这个错。

现在不是报错的问题,而是,为什么这条命令不执行的问题。

#3


引用 2 楼 jiller 的回复:
Quote: 引用 1 楼 cy309173854 的回复:

把输出重定向:
22 20 * * * root sudo rtcwake  -m no -t `date -d 20:31 +%s` >/dev/null 2>&1

crontab执行脚本时是不会直接输出错误信息,而是会以邮件的形式发送到邮箱里,如果没有安装邮件服务器,就会报这个错。

现在不是报错的问题,而是,为什么这条命令不执行的问题。

可以这样理解:因为无法发送信息或者无法显示输出,所有命令无法执行。
输出重定向后仍无法执行吗 ?

#4


是的。输出重定向后也不行。