
Я написал простой bash-скрипт под названием write-date.sh
, который просто записывает дату в файл:
#!/bin/bash
echo "$(date) Write Done" >> write-date.log
И я запускаю скрипт bash каждые 60 секунд следующим образом:
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
это время и посмотреть, не произошло ли что-нибудь странное с системой в указанное время.
--- ОБНОВЛЯТЬ ---
Остановил выполнение команды, очистил файл журнала и снова запустил команду с нуля. Теперь дата регистрируется раз в минуту, как и ожидалось.
Как указано в комментариях, дублирующиеся журналы могли быть от предыдущего подозрительного запуска скрипта (вероятно, ошибка пользователя), но я не могу представить, как или когда это могло произойти. В любом случае будет продолжать работать в течение нескольких часов/дней, поэтому буду следить за этим.