The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
поиск в файле найденном по дате последнего  изменения, !*! nastr, 15-Дек-08, 13:19  [смотреть все]
есть скрипт который создаёт файлы отчётов (запускается 2 раза в день) и именует их таким образом: XXX_`date "+%m%d%H%M"`\.txt

Я сейчас пишу скрипт который будет обрабатывать эти файлы отчёты, но проблема в том что он не может общаться к файлу по имени XXX_`date "+%m%d%H%M"`\.txt
т.к. если данный скрипт запускается на секунду позже чем были запущены предыдущие скрипты, то он пытается обращаться уже к другим именам отчётов (которые не существуют).

Я решил найти файлы изменяемые за последний час:
# find ./ -mtime 1
./PAS_12121610.txt
./CHRIS_12121610.txt
. . .

Нужно из найденных выделать, определённый файла для каждого отчёта отдельно:
./ -mtime 2 | grep CHRIS

Потом в это файле найти все строки содержащие error
# find ./ -mtime 2 | grep CHRIS | grep error CHRIS*
#в таком случае error ищется во всех файлах CHRIS* в папке

Как в случае поиска файла по времени последнего изменения, начать поиск grep'ом в этом файле?

  • поиск в файле найденном по дате последнего  изменения, !*! nastr, 14:29 , 15-Дек-08 (1)
    find ../Logs/ -mtime -1 -name "CHRIS*"  > ../Logs/tmp
    cat ../Logs/tmp | while read file
    do
    grep error $file
    done
  • поиск в файле найденном по дате последнего  изменения, !*! mikra, 14:29 , 15-Дек-08 (2)
    >[оверквотинг удален]
    >
    >Я сейчас пишу скрипт который будет обрабатывать эти файлы отчёты, но проблема
    >в том что он не может общаться к файлу по имени
    >XXX_`date "+%m%d%H%M"`\.txt
    >т.к. если данный скрипт запускается на секунду позже чем были запущены предыдущие
    >скрипты, то он пытается обращаться уже к другим именам отчётов (которые
    >не существуют).
    >
    >Я решил найти файлы изменяемые за последний час:
    ># find ./ -mtime 1

    Я сомневаюсь, что в какой-либо версии find ключ mtime измеряется в часах. У меня - в сутках. Вобщем почтай man find на всякий случай.
    Мой вариант
    find . -mmin -60

    >Нужно из найденных выделать, определённый файла для каждого отчёта отдельно:
    >./ -mtime 2 | grep CHRIS

    Многопараметрический поиск можно делать в find
    find . -mmin -60 -name "*CHRIS*"

    >Потом в это файле найти все строки содержащие error
    ># find ./ -mtime 2 | grep CHRIS | grep error CHRIS*

    Здрасте приехали... В конвейере имена файлов ходят, а ты там строки из файлов ищешь.
    Каждый файл надо сперва открыть и вывести, а потом в нем что-то искать
    find . -mmin -60 -name "*CHRIS*" -exec cat '{}' \; | grep "error CHRIS"

    >#в таком случае error ищется во всех файлах CHRIS* в папке

    Вообще странно что у тебя оно хоть что-то искало ;)
    Почитай внимательнее man find. Это очень полезный инструмент.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру