我想把最近执行时间的作业状态输出到文本文件中,但是每次运行作业时(使用cronjob调度),它也会在文本文件中附加旧的执行结果,但是我只想得到最近执行结果的文本输出。如何克服这个问题。
示例:
#!/bin/bash
ydate="$(date +"%H-%M-%S")"
echo "${ydate} Test1 Done " >>/app/my_status.log 2>>/app/my_status.log.err
echo "${ydate} Test2 Done " >>/app/my_status.log 2>>/app/my_status.log.err
echo "${ydate} Test3 Done " >>/app/my_status.log 2>>/app/my_status.log.err
echo "${ydate} Test4 Error " >>/app/my_status.log 2>>/app/my_status.log.err
echo "${ydate} Test5 Not_Running " >>/app/my_status.log 2>>/app/my_status.log.err
当我每5分钟执行一次脚本时,我得到如下结果
14-41-14 Test1 Done
14-41-14 Test2 Done
14-41-14 Test3 Done
14-41-14 Test4 Error
14-41-14 Test5 Not_Running
14-46-15 Test1 Done
14-46-15 Test2 Done
14-46-15 Test3 Done
14-46-15 Test4 Error
14-46-15 Test5 Not_Running
14-51-15 Test1 Done
14-51-15 Test2 Done
14-51-15 Test3 Done
14-51-15 Test4 Error
14-51-15 Test5 Not_Running`
但我只想在最后一次执行结果后获得5行最新时间,如下所示
14-51-15 Test1 Done
14-51-15 Test2 Done
14-51-15 Test3 Done
14-51-15 Test4 Error
14-51-15 Test5 Not_Running`
不加附加而回送结果
1条答案
按热度按时间btxsgosb1#
如果你想截断的话。使用分组。
你也可以使用
exec
打开一个文件,并在整个会话中使用一个文件描述符。