Watch 명령 문제, Bash 스크립트 문제 또는 시스템 문제?

Watch 명령 문제, Bash 스크립트 문제 또는 시스템 문제?

write-date.sh나는 단순히 날짜를 파일에 쓰는 간단한 bash 스크립트를 작성했습니다 .

#!/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 스크립트 자체가 잘못되었나요? 어딘가에 시스템 시계 문제가 있습니까?

OS는 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

또한 이 스크립트를 작성하는 이유는 OS의 루트 파일 시스템이 몇 시간마다 또는 때로는 며칠마다 읽기 전용 모드로 전환되는 문제가 있어서 날짜와 시간을 알아내려고 노력하고 있다는 점을 지적해야 합니다. 이런 일이 발생하면 나중에 /var/log/syslog그 시간 쯤에 해당 시간에 시스템에 이상한 일이 발생했는지 확인할 수 있습니다.

--- 업데이트 ---

명령 실행을 중지하고 로그 파일을 지우고 명령을 처음부터 다시 실행하면 예상대로 날짜가 분당 한 번씩 기록됩니다.

댓글에서 지적했듯이 인쇄된 중복 로그는 이전의 의심스러운 스크립트 실행(아마도 사용자 오류)에서 발생한 것일 수 있지만 이러한 일이 언제 어떻게 발생했는지 생각할 수 없습니다. 어쨌든 몇 시간/일 동안 계속 실행되므로 계속 지켜볼 것입니다.

관련 정보