LINUX.ORG.RU
ФорумAdmin

Вывод последнего созданного лога/файла.

 , , ,


0

1

Для вывода логов использую утилиту logscan:

$logscan -in logname01.log *+набор команд для фильтрации вывода*

Так как логов пишется огромное количество, а информация нужна из последнего созданного log файла, мне приходится сначала смотреть какой файл создан последним (ls) и вбивать его название. Наверно есть способ как прописать переменную которая была бы последним созданным файлом в каталоге.

Подскажите как такое реализовать?


Первый бред который пришёл в голову это
echo `ll -tr` >> somefile
tail -n 1 somefile
//me знает что ещё хуже сделать не получится, но как вариант предложил.

dada ★★★★★ ()
lastlog="$(ls -t logs*  | head -n1)"
router ★★★★★ ()
Ответ на: комментарий от anonymous

Ок, то что нужно! Но я и глазами могу увидеть последний созданный файл, как бы теперь запихнуть вывод в команду logscan?

Пробовал загнать в переменную: for i in $(find -maxdepth 1 -type f -printf '%T@ %p\n' |sort -k 1 |awk 'END{print $2}'); do echo $i; done, но подставить переменную в необходимую команду у меня не получилось :(

yar1k ()
Ответ на: комментарий от yar1k

Всё! проблема решена, после ознакомления со станичкой о подстановке команд! Использую следующий формат ``, для подстановки вывода одной команды в переменную другой:

logscan -in `ls -t /var/xmp/log/ | head -n1`

Всем большое спасибо!

yar1k ()

А где гарантия, что вы увидите все записи из всех логов? logscan проверяет логи раз в n миллисекунд? А если в logfile1 записали строку, потом в logfile2 строку, потом в logfile1 снова строку, и запись в logfile2 попала между двумя проверками логов, вы пропустите ее?

pianolender ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.