使用 cron 执行的 stdoutput 覆盖文件

使用 cron 执行的 stdoutput 覆盖文件

我的 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

>> 的重定向将追加,> 将覆盖。只是想知道,如果不保留历史数据,为什么不将其通过邮件发送?

相关内容