У меня есть каталог, полный файлов журналов, которые я хотел бы использовать в качестве хвоста.Tailing Rolling Files
Файлы названы такие:
name modified
00A.txt Dec 27 19:00
00B.txt Dec 27 19:01
00C.txt Dec 27 19:02
00D.txt Dec 27 19:03
На старой системе UNIX, я пытаюсь придумать сценарий оболочки, который будет хвост наиболее недавно измененный файл в определенном каталоге, и если этот файл становится административно закрытым (перекатывается к следующему файлу). Я хочу, чтобы программа автоматически начинала обрабатывать новый файл без необходимости выходить из хвоста для повторного запуска.
tail -100f `ls -t | head -1`
Желаемое поведение, учитывая вышеупомянутые имена файлов, будут идти, как это:
./logtailer.sh
Затем скрипт начнет хвостовых 00D.txt. Как только регистратор завершил запись в 00D.txt, и новый файл журнала теперь был назван 00E.txt, программа автоматически начнет обрабатывать этот файл.
Можно написать этот скрипт, просмотрев вывод хвоста для текста «Файл с административным закрытием», а затем снова выполнив следующую команду.
tail -100f `ls -t | head -1`
Есть ли более элегантный способ сделать это, чем смотреть текст «файл административно закрыт»? Как я могу прочитать вывод хвоста за строкой в сценарии оболочки?
Редактировать: Я должен объяснить, что флагом -F для хвоста не является вариантом для меня в этой системе. Он использует другую версию хвоста, которая не содержит эту функцию. Версия ОС - Solaris 10
Я хотел бы использовать этот флаг, но моя версия у хвоста нет этой функции, и у меня нет возможности ее обновить. (Нет прав администратора) – user1118047
Можете ли вы предоставить информацию о версии 'tail' и' box (unix/linux) ', которые вы используете? –
SunOS 5.10 Не знаете, как найти версию хвоста ... – user1118047