У меня есть каталог полных файлов журналов, который я хотел бы использовать для хвоста.
Файлы названы так:
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 для текста «Файл административно закрыт», а затем снова запустить следующую команду.
tail -100f `ls -t | head -1`
Есть ли более элегантный способ сделать это, чем поискать текст "файл административно закрыт"? Как я могу читать вывод хвостовой строки построчно в сценарии оболочки?
Редактировать: Я должен объяснить, что флаг -F для tail не подходит для меня в этой системе. Он использует другую версию хвоста, который не содержит эту функцию.
Версия ОС - Solaris 10