我试图在我的Linux系统上运行crontab的脚本,该脚本留下一个空文件。当我运行登录终端的脚本时,它运行正常。
Cron line:
$datagridMapper
->add('startDate', 'sonata_type_date_picker')
->add('endDate', 'sonata_type_date_picker')
;
脚本“start_reader_services”调用Python脚本,如下所示:
@reboot sleep 1m; /bin/bash /root/start_reader_services
tag_output基本上打印出一系列ID。当我将stdout发送到我的串口(tag_output> / dev / ttyO0)时,相同的机制工作,但现在,从cron写入文件,文件被创建,但是是空的。
正如我所提到的,在命令行上运行start_reader_services或任何一部分,它按预期工作。
做完了: - 将bash设置为cron shell - 在cron上设置java环境
根据要求:
/root/java/tag_output >> $TAGS_PATH/tags_$DATE_FILE.log
标记输出的第一行:
ls -l /root/java/tag_output
-rwxr-xr-x 1 root root 1981 Aug 6 12:06 /root/java/tag_output
任何帮助?
答案 0 :(得分:0)
tag_output
是否可以写入 stderr 而不是 stdout ?尝试重定向 stderr :
/root/java/tag_output >> $TAGS_PATH/tags_$DATE_FILE.log 2>&1
顺便说一句,您可能还想引用并使用shell变量扩展的大括号;这使它更容易阅读,可能更安全一点:
/root/java/tag_output >> "${TAGS_PATH}/tags_${DATE_FILE}.log" 2>&1
答案 1 :(得分:0)
使用crontab python初始化和更新crontab之后,然后发出
cron.write(), give the command,
cron.__reduce__()[2]['lines'] = filter(None,
cron.__reduce__()[2]['lines'])
这样做将删除Linux crontab中打印的空行。