【发布时间】:2022-10-24 14:12:53
【问题描述】:
我想将多个 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 记录?
【问题讨论】:
-
日志条目可能交错。使用附加模式,覆盖应该是不可能的。
-
您可以考虑使用记录到各种系统日志的
logger命令 - 请参阅man logger。