Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Парсер логов php с grep / 9 сообщений из 9, страница 1 из 1
26.01.2015, 22:58
    #38863741
andrey10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер логов php с grep
Привет! Мой день начинается с того, что я захожу в консоль и грепаю логи на линуксе. Сейчас хочу поручить это дело другому человеку, но дать ему доступ к консоли не могу, потому что он с ней не разберется. Надумал сделать симпл пхп парсер с одним полем, который будет работать по тому же принципу как и греп. По сути, мне нужен только поиск слова целиком (grep -w Asd) и поиск одной регуляркой (grep Asd.*asd). Как это реализовать на пхп, если экзек открывать не хочется (из соображений безопасности)? Ребят, кто разбирается, помогите пожалуйста. Самому разбираться, гуглить, экспериментировать времени нет. Жена капризничает, ребенок плачет, на работе грузят. У меня на это может целый день уйти, а вы, знатоки, за две минуты разберетесь. Благодарю!
...
Рейтинг: 0 / 0
27.01.2015, 00:03
    #38863783
Guest1234323433232
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер логов php с grep
andrey10,

В чем проблема-то, лог в архив и по почте человеку который будет разбираться. И доступ можно не давать, раз такая секретность и архив можно запоролить, чтоб по пути через почтовые сервера его роботы не читали. Если человек есть смышленый, то ему и разбираться, а на чем, PHP, python, perl или еще на чем, не важно, ведь наверно важен только результат?

Если (обработка.текущий_лог) === Флаг_Найдено_Условие ТО
письмо(администратору, ------)
Иначе
письмо("обработано --- записей, за --- минут, результат ---)
КонецЕсли
...
Рейтинг: 0 / 0
27.01.2015, 01:19
    #38863805
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер логов php с grep
andrey10Надумал сделать симпл пхп парсер с одним полем, который будет работать по тому же принципу как и греп.Только работать будет в разы... не в лучшую строну.

andrey10мне нужен только поиск слова целиком (grep -w Asd) и поиск одной регуляркой (grep Asd.*asd).Слова и регекспы заранее известны или каждый раз по ситуации?

andrey10если экзек открывать не хочется (из соображений безопасности)Тут можно посмотреть в сторону хороших ограничений.
Если слова поиска для грепа известны заранее, то сложно представить, что Вы вообще напишите какие-то потенциально опасные команды для выполнения :-) Тут все просто.
Далее. Разрешать екзек можно не на всём сервере, а только на каком-то определённом аккаунте, запуская его со своим php.ini как CGI или FastCGI.
Следующее. Привилегии доступа. Скажем так, можно дать пользователю, от которого выполняется PHP, достаточно ограниченный доступ. Например, только на чтение и/или только к определённым директориям/файлам. Chroot, jail и т.п. тоже никто не отменял.


А по-хорошему, конечно, присоединяюсь к предыдущему оратору - логи в архив и на мыло.
...
Рейтинг: 0 / 0
27.01.2015, 12:46
    #38864131
andrey10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер логов php с grep
Вес лога ~2 гигабайта. Нельзя вырезать 123 последних строк и отправить, так как вся информация в файле необходимая.

Хорошо, допустим, я создал пользователя с ограничениями и запустил от него пхп. Как должен выглядеть сам скрипт с полем для обработки текста grep'ом и выводом результата?
...
Рейтинг: 0 / 0
27.01.2015, 13:43
    #38864209
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер логов php с grep
andrey10Как должен выглядеть сам скрипт с полем для обработки текста grep'ом и выводом результата?Форма + http://php.net/manual/ru/function.system.php + что-то, что ловит входные данные. Вроде такого
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<form method="POST">
  <input type="text" name="command" />
  <input type="submit" />
</form>

<?php
if(isset($_POST['command'])) {
  echo '<pre>';
  system($_POST['command']);
}



Конечно, можно часть команды прописать явно, а из формы только аргументы принимать.
Можно дополнительно отфильтровать допустимые символы в принимаемых данных.
Или делать выбор из заранее заготовленных полных команд (вручную вообще ничего не вводить).
Тут вариантов - тьма.

Да, маленький нюанс. Имя команды желательно указывать полностью, с путём, типа /bin/awk (по крайней мере, так всегда работает).
...
Рейтинг: 0 / 0
27.01.2015, 22:13
    #38864851
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер логов php с grep
andrey10Вес лога ~2 гигабайта. Нельзя вырезать 123 последних строк и отправить, так как вся информация в файле необходимая.Подумалось... Расшарить ресурс через самбу или фтп - нехай забирает и грепает на своём компе.
...
Рейтинг: 0 / 0
28.01.2015, 11:10
    #38865226
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер логов php с grep
а не проще скриптом грепать и класть/отправлять куда надо, скрипт по крону, если набор слов(параметров) одинаковый?
...
Рейтинг: 0 / 0
28.01.2015, 13:43
    #38865468
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер логов php с grep
судя по темам автора, в шелл скриптах он тоже не разбирается...

верно подсказали. если фиксированые критерии парсинга, кроном парсить и пусть человек готовый результат забирает, если он интерактивно чтото хочет сделать, ему же быстрее, скачать лог в архиве, и пусть как хочет парсит.

парсить на пхп читая , верно подметили, не медленно а убийственно медленно в сравнении с шеловскими утилитами.
...
Рейтинг: 0 / 0
28.01.2015, 13:44
    #38865471
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер логов php с grep
хотя я в подобной ситуации отчасти по приколу, отчасти хахотелось. написал скрипт, где есть несколько команд, и поставил его как шелл оболочку юзеру. заходит юзер в консоль, но попадает сразу в этот скрипт, и сидит там себе...и таки был парсинг логово нескольких типов.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Парсер логов php с grep / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]