
我編寫了一個名為的簡單 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),我不明白為什麼這可能是......手錶命令錯誤? 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
該時間,看看系統在該時間是否發生了任何奇怪的事情。
- - 更新 - -
已停止運行命令並清除日誌檔案並從頭開始重新運行命令,現在正如人們所期望的那樣,每分鐘記錄一次日期。
正如評論中指出的,列印的重複日誌可能來自以前的狡猾腳本運行(可能是用戶錯誤),但我無法想像這可能是如何或何時發生的。無論如何,都會繼續運行幾個小時/幾天,所以會密切關注。