保存是为了将多个bash脚本附加到同一日志文件吗



我想将多个bash脚本保存到同一个日志文件中,以便能够精确地监视哪个事件发生在另一个事件之前。

为了创建一些测试,我几乎同时执行了三个bash脚本。

文件A.sh:

#!/bin/bash
watch -n 1 'echo AAA $(date '+%Y%m%d%H%M%S%N') >> mylog.log'

B.sh 文件

#!/bin/bash
watch -n 1 'echo BBB $(date '+%Y%m%d%H%M%S%N') >> mylog.log'

C.sh 文件

#!/bin/bash
watch -n 1 'echo CCC $(date '+%Y%m%d%H%M%S%N') >> mylog.log'

在日志文件中,我看到:

AAA 20220211083057445268276
BBB 20220211083058398227435
CCC 20220211083058417044373
AAA 20220211083058453956479
BBB 20220211083059419856946
CCC 20220211083059436848192

所有这些看起来都很好。

如果两个bash脚本同时写入日志文件,会发生什么情况?是否实现了一些文件锁定,所以B.sh必须等到A.sh写入日志文件,或者B.sh只覆盖A.sh记录?

As"rici";声明,如果您在打开然后并发访问时使用"append"模式,这应该不是问题,但是,结果可能不是您期望的顺序。在日志条目中添加时间戳可能有助于消除它们的混乱。

并发访问还意味着进程将不得不等待一段时间。我不希望等待很长时间,但这也取决于进程的附加频率。等待可能会给您带来进一步的问题,尤其是在并发访问尝试次数增加(大量进程或无休止循环(的情况下。

我不太熟悉,但你可能想看看syslog系统或类似的系统;它可能是一个替代选项,可以消除并发文件处理/写入的一些特性(同时引入其他特性;-((。

最新更新