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