我有这个命令
echo "$(date +"%T") $(sensors | grep -Eo "[0-9]+\.[0-9]+" | head -1)" >> /home/me/temp_log.txt
它获取一些传感器数据并将其放入文件中,我想每半小时运行一次。它在 stdin 中运行良好,但当我将其放入我的 crontab 文件中时,如下所示:
0,30 * * * * echo "$(date +"%T") $(sensors | grep -Eo "[0-9]+\.[0-9]+" | head -1)" >> /home/me/temp_log.txt
它就是无法运行。Vim 在 % 后突出显示很奇怪,但我不确定这是否是问题的一部分。
答案1
因为cron
不提供完整bash
的解析。更容易的是:
0,30 * * * * /home/me/bin/mycron
哪里/home/me/bin/mycron
:
#!/bin/bash
echo "$(date +"%T") $(sensors | grep -Eo "[0-9]+\.[0-9]+" | head -1)" >> /home/me/temp_log.txt
并且,由于cron
有自己的想法PATH
,您可能需要使用命令的完整路径sensors
。