Cronjob 输出到日志

Cronjob 输出到日志

我正在使用一个脚本来测试宽带速度,我想设置一个 cronjob 来每 n 分钟测试一次并输出到文件。从 shell 控制台启动它并附加到日志文件并在前面加上当前日期的命令是

tespeed.py -w | sed -e "s/^/$(date +\"%d-%m-%y\ %T\"), /" >>tespeedlog.csv

但是如果我在 cronjob 中使用这个命令,有些东西就不起作用了;系统日志报告:

Sep 25 13:23:01 raspberrypi /USR/SBIN/CRON[6719]: (pi) CMD (/home/pi/tespeed/tespeed.py -w | sed -e "s/^/$(date +')

我应该检查什么?

答案1

创建一个包装器脚本,因为转义日期格式可能存在问题。问题似乎出%在某些 cron 调度程序中可能被解释为新行说明符的字符上:

将其放入文件中/usr/local/bin/wrpr.sh

#!/bin/sh
tespeed.py -w | sed -e "s/^/$(date +\"%d-%m-%y\ %T\"), /" >> /tmp/tespeedlog.csv

使其可执行:

chmod u+x /usr/local/bin/wrpr.sh

并使用 cron 安排它(这将覆盖当前用户的 crontab):

echo "* * * * * /usr/local/bin/wrpr.sh" | crontab

否则,使用crontab -e将其添加到当前用户的 crontab。

相关内容