我的 crontab 中有这个 cron
00 01 * * * /srv/python/proj/acquisizione/acquisizioneAOK.sh >> /home/crontab_logs/acquisizioneAOK.out 2>&1; mailx -s "Cron output: acquisizioneAOK" [email protected] < /home/crontab_logs/acquisizioneAOK.out
它将 stdoutput 写入文件.out
,然后向我发送一封包含该文件作为文本的电子邮件。如何清空以前输出中的文件?我只想要一封包含上次 cron 执行的标准输出的电子邮件。
谢谢
答案1
要在每次执行脚本时覆盖日志文件,请将>>
运算符替换为>
运算符。
操作>>
员在每次执行时将输出附加到文件中,使用这种方法您将获得一个不断增长的文件。
操作>
符在每次执行时都会“破坏”文件,这会导致在写入重定向输出之前删除所有现有数据。
更进一步,您可以简单地将输出和错误流从脚本mailx
直接传输到命令:
/srv/python/proj/acquisizione/acquisizioneAOK.sh 2>&1 | mailx -s "Cron output: acquisizioneAOK" [email protected]
答案2
>> 的重定向将追加,> 将覆盖。只是想知道,如果不保留历史数据,为什么不将其通过邮件发送?