查看命令问题、Bash 脚本问题还是系统问题?

查看命令问题、Bash 脚本问题还是系统问题?

我编写了一个简单的 bash 脚本,write-date.sh它只是将日期写入文件:

#!/bin/bash

echo "$(date) Write Done" >> write-date.log

我每 60 秒运行一次 bash 脚本,如下所示:

watch -n 60 ./write-date.sh

但是,当我运行命令时,文件中生成的输出write-date.log包含如下代码片段的输出:

Thu  1 Jul 09:42:03 BST 2021 Write Done
Thu  1 Jul 09:42:03 BST 2021 Write Done
Thu  1 Jul 09:42:03 BST 2021 Write Done
Thu  1 Jul 09:42:03 BST 2021 Write Done
Thu  1 Jul 09:42:03 BST 2021 Write Done
Thu  1 Jul 09:42:04 BST 2021 Write Done
Thu  1 Jul 09:42:04 BST 2021 Write Done
Thu  1 Jul 09:42:04 BST 2021 Write Done
Thu  1 Jul 09:42:04 BST 2021 Write Done
Thu  1 Jul 09:42:04 BST 2021 Write Done
Thu  1 Jul 09:42:04 BST 2021 Write Done
Thu  1 Jul 09:42:04 BST 2021 Write Done
Thu  1 Jul 09:42:04 BST 2021 Write Done
Thu  1 Jul 09:42:04 BST 2021 Write Done
Thu  1 Jul 09:43:04 BST 2021 Write Done
Thu  1 Jul 09:43:26 BST 2021 Write Done
Thu  1 Jul 09:44:26 BST 2021 Write Done
Thu  1 Jul 09:45:26 BST 2021 Write Done
Thu  1 Jul 09:46:26 BST 2021 Write Done
Thu  1 Jul 09:47:26 BST 2021 Write Done
Thu  1 Jul 09:48:26 BST 2021 Write Done

从中可以看出,有时每分钟将日期写入日志文件不止一次(此示例代码片段中的 09:42 和 09:43),我不明白为什么会这样... watch 命令有错吗? bash 脚本本身有错吗? 系统时钟是否存在问题?

操作系统是 Ubuntu 20.04,其中uname -a

Linux machine 5.4.0-77-generic #86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

我还应该指出,这个脚本的原因是我遇到一个问题,即操作系统的根文件系统每隔几个小时或有时每隔几天就会进入只读模式,所以我试图找出发生这种情况的日期和时间,以便我可以稍后查看/var/log/syslog那段时间,看看系统在那个时候是否发生了任何奇怪的事情。

- - 更新 - -

已停止运行命令并清除日志文件,然后从头开始重新运行命令,现在日期每分钟记录一次,正如预期的那样。

正如评论中指出的那样,打印的重复日志可能来自之前不可靠的脚本运行(可能是用户错误),但我想不出这种情况是如何或何时发生的。无论如何都会继续运行数小时/数天,所以会密切关注它。

相关内容