Я использую Logrotate для управления журналами из Selenium Grid. Сначала я запускаю сервис Selenium
docker compose -f /mydirectory/dockercompose.yml up >/mydirectory/hub_starthub_logs.txt Selenium запускается, и выходные данные размером 19 КБ отправляются в hub_starthub_logs.txt
Файл размером 19 КБ
Я запускаю logrotate с помощью copytruncate, потому что Selenium не будет непрерывно журналировать, если я использую опцию create из logrotate, поскольку create создает новый файл каждый раз вместо усечения, которое разрывает соединение вывода Selenium с исходным файлом журнала
/mydirectory/hub_starthub_logs.txt { Миссингок размер 20М повернуть 5 копироватьобрезать } Он правильно усекает исходный журнал и правильно создает резервную копию. Это означает, что файл hub_starthub_logs.txt становится размером 0 КБ, а hub_starthub_logs.txt.1 создается с размером 19 КБ
Затем я выполняю несколько команд Selenium, в результате чего Selenium получает больше результатов. Этот новый вывод имеет размер всего 2 КБ, поэтому я ожидаю, что только 2 КБ вывода будут переданы в hub_starthub_logs.txt. Я проверяю размер файла, и на самом деле он составляет 21 КБ. Я открываю файл в блокноте, и кажется, что в нем огромное количество пробелов, потому что я могу поместить курсор в строку 1, столбец 11070.

Selenium (или Linux, или какая-то ошибка в logrotate), похоже, отправляет старый вывод размером 19 КБ (19 КБ сверху) в какой-то форме текста, который я не вижу без конечных строк. Не следует этого делать.
Я загрузил этот файл сюда:
Файл размером 21 КБ
Если вы просматриваете файл на Google Диске, в нем нет нескольких пустых строк.

Вам необходимо скачать его, а затем открыть в Блокноте, чтобы увидеть
Какой процесс или инструмент приводит к тому, что усечение снова появляется в виде пробелов? Как это исправить?
Мобильная версия