Longobard
написал 9 июля 2004 года в 15:42 (698 просмотров)
Ведет себя
как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.
longobard root # cat /tmp/distccd-logclean | grep -E "*(connection|kernel|compil|upload|download)" Jul 9 15:21:55 longobard pure-ftpd: (?@10.1.5.38) [INFO] New connection from 10.1.5.38 Jul 9 15:22:00 longobard distccd[7068]: (dcc_check_client) connection from 10.1.5.38:34703 Jul 9 15:22:00 longobard distccd[7068]: compile from geometry.c to geometry.o Jul 9 15:22:00 longobard distccd[7069]: (dcc_check_client) connection from 10.1.5.38:34706 Jul 9 15:22:00 longobard distccd[7069]: compile from bsect.c to bsect.o Jul 9 15:22:00 longobard distccd[7070]: (dcc_check_client) connection from 10.1.5.38:34709 Jul 9 15:22:00 longobard distccd[7070]: compile from partition.c to partition.o Jul 9 15:22:37 longobard pure-ftpd: (?@10.1.3.221) [INFO] New connection from 10.1.3.221 Jul 9 15:26:29 longobard pure-ftpd: (?@10.1.3.221) [INFO] New connection from 10.1.3.221 Jul 9 15:26:37 longobard pure-ftpd: (?@10.1.2.41) [INFO] New connection from 10.1.2.41 Jul 9 15:29:13 longobard pure-ftpd: (?@10.1.5.233) [INFO] New connection from 10.1.5.233 Jul 9 15:30:44 longobard pure-ftpd: (?@10.1.9.93) [INFO] New connection from 10.1.9.93 Jul 9 15:31:12 longobard distccd[7071]: (dcc_check_client) connection from 10.1.5.38:34722 Jul 9 15:31:42 longobard pure-ftpd: (?@10.1.5.38) [INFO] New connection from 10.1.5.38 Jul 9 15:32:56 longobard pure-ftpd: (?@10.1.5.38) [INFO] New connection from 10.1.5.38 Jul 9 15:32:56 longobard pure-ftpd: (ftp@10.1.5.38) [NOTICE] /home/ftp//gentoo/distfiles/gpc231.tar.Z downloaded (27917 bytes, 2281.97KB/sec) Jul 9 15:35:21 longobard distccd[7076]: (dcc_check_client) connection from 10.1.5.38:34736 Jul 9 15:35:21 longobard distccd[7076]: compile from rmprq.c to rmprq.o Jul 9 15:35:23 longobard distccd[6899]: (dcc_check_client) connection from 10.1.5.38:34741 Jul 9 15:35:23 longobard distccd[6899]: compile from expand.c to expand.o Jul 9 15:35:23 longobard distccd[6964]: (dcc_check_client) connection from 10.1.5.38:34744 Jul 9 15:35:23 longobard distccd[6964]: compile from dag.c to dag.o Jul 9 15:35:23 longobard distccd[7065]: (dcc_check_client) connection from 10.1.5.38:34747 Jul 9 15:35:23 longobard distccd[7065]: compile from sysintf.c to sysintf.o Jul 9 15:35:23 longobard distccd[7066]: (dcc_check_client) connection from 10.1.5.38:34750 Jul 9 15:35:23 longobard distccd[7066]: compile from quit.c to quit.o
longobard root # cat /tmp/distccd-logclean | grep -E "*(connection|kernel|compil|upload|download)" > /var/log/messages longobard root #
Во втором случае в /var/log/messages никуя не появляется! Хотя я делаю те же действия (лазаю по своему фтп и пр.), но там ничего не форвардится. Пробовал ставить первую команду во всякие ковычки-козяфки, не помогает. В чем дело? Права на всякий на /var/log/messages проставил 777. В чем фигня?
ЗЫ: /tmp/distccd-logclean — это FIFO канал
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
А может, там и нет ничего, в фифе-то?
cat | grep — масло маслянное, достаточно просто
grep -E «*(connection|kernel|compil|upload|download)» /tmp/distccd-logclean
Попробуй не переписывать /var/log/messages, а добавлять к нему:
grep -E «*(connection|kernel|compil|upload|download)» /tmp/distccd-logclean >> /var/log/messages
Good Luck,
UT
Аднака,
man tail
/-f
Ибо файл изменяется после открытия, но ни cat, ни less, ни grep на это не рассчитаны.
Так что
tail -f /var/log/your_file.log | grep 'bla-bla-bla' > /path/to/output_file.txt
Не-а. Не работает ни тот ни другой вариант.
2 Genie: тут не файл а FIFO, так шо какая нах разница? Но попробовал и через tail — не работает. Причем такая интересная вещь:
cat /tmp/distccd-logclean > /var/log/messages
выводит как и нада все из пайпа в лог.
А grep -E «*(connection|kernel|compil|upload|download)» /tmp/distccd-logclean > (или >>) /var/log/messages не работает. Блин.
хммм..
а что даст
fuser -auv /var/log/messages
?
когда в логи ничего не форвардицца:
Когда форвардицца через grep -E «*(connection|kernel|compil|upload|download)» /tmp/distccd-logclean > /var/log/messages
О! Обнаружил инетересную вещь: через некоторое (хз какое, тока что с пяьнки пришел) время, в mesages появляется все шо должно там быть. Это навевает меня на мысль про то что cat и grep по разномы выводят, что grep буфферизирует поток и видимо сбрасывает буфер не сразу. Ща на еще одну пьянку сбегаю и попробую вкурить шо там за дело. Мона как-нить сделать шоб при буфферизированом выводе буфер сразу сбрасывался не прибегая к изменению сырцов grep?
Причем в messages скидываются из буфера не все залогированное разом, а по букве :) Например окончание содержимого может быть таки:
Попробовал вместо grep попользовать sed — тот же самый результат :( Раз в N промежуток времени (довольно большой) в messages сваливается выхлоп :(
Пробовал вместо messages выхлоп направлять в другой FIFO канал из которого читаю. Та же лажа :(
Единственное, что приходит в голову, sync раз в какое-то время?
Good Luck,
UT
КАК? Мне тут наш местный гуру из локалки сказал что
Это тож не работает. Он пояснил почему:
Хачить ядро желания нету. Блин, мож мона как-нить по другому? Задача такая:
Попробуй запустить другой процесс, типа
while [ 1 == 1 ]; do
sync
sleep 1
done
Я не очень понимаю, причем тут атомарный размер записи в пайпу, в ядре он аж 4K, но раз гуру сказал дело в буферах, попробуй их спускать раз в секунду…
Good Luck,
UT
sync не помогает. Т.е. я делаю
А на другой консоли делаю некие действия, которые должны заноситсяв логи, лазаю по фтп, а потом делаю sync. В /var/log/messages нету никуя.
Попробуйте пожалуйста кто-нить сделать на своем компе следующее:
Че у вас получится в результате последней команды? Я уже грешу на ядро (коливас ck5 у меня).
Поигрался с приоритетом задачи. Не помогло. И SCHED_NORM,SCHED_BATCH, SCHED_ISO попробовал, даже SCHED_RR!!!! Нифига :(
UP! Ну что, никаких идей чтоли? помогите же!
tail -F -s 1 /path/to/log | grep «bla-bla-bla» > /path/to/another.log
?
Не работает. tail -F -s 1 /path/to/log не работает. Попробуй сам.
Извините если что не так, я тоже спьяну.
А grep вообще идет, проверяли? Дело в том, что (afaik) syslog переоткрывает свой файл на каждую запись. А когда он его закрывает, grep gets eof and dutifullly exits. По моему так.
grep идет, проверял ессно. Все работает без перенаправления. А как тока направляю куда-нить — все, куй там был.
короче, use logger
Не, так неинтересно. Тогда все месааги в логе буду от процесса logger. Нунах.
Ёпть!!!
man logger
/-t
НУ? А мне нада шоб подписано было не TestLog и не Logger а как это изначально было в логе, например pure-ftpd или distccd
…….
logger -t pure-ftpd «Message»
А если там не пуре-фтпд? :)))))