Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Как разархивировать gzip (.gz) (http://forum.oszone.net/showthread.php?t=54162)

benya 22-09-2005 14:45 357558

Как разархивировать gzip (.gz)
 
Господа, столкнулся с проблемкой. Хочу сделать мини анализатор логов (уже сделал). Проблема состоит том что хостер пишет логи сразу в ".gz". Ну и вобщем имеет структуру такую : arhive_log.gz внутри которого уже находится сам лог. Как его превратить в нормальный вид, желательно без промежуточной записи. Разархивировать, выбрать нужные строки, закрыть.
Только не пишите сообщения perldoc Arhive::Zlib или что-то еще подобное.
?

xamelion 22-09-2005 14:49 357561

readgzfile - выводит gz-файл.

Описание
int readgzfile (string filename [, int use_include_path])

Читает файл, распаковывает его и записывает в стандартный вывод.

readgzfile() может использоваться для чтения файла, не имеющего формат gzip; в этом случае readgzfile() непосредственно читает из файла без декомпрессии.

Возвращает количество (неупакованных) байтов из файла. Если возникает ошибка, возвращается FALSE и, если функция не была вызвана @readgzfile, печатается сообщение об ошибке.

Файл filename будет открыт из файловой системы и его содержимое будет записано в стандартный вывод.

Вы можете использовать необязательный второй параметр и установить его "1", если хотите также искать файл в include_path.

Vlad Drakula 22-09-2005 14:54 357562

benya
если правильно помню то есть gfopen() gfread() gfclose() которые позволяют работать со сжатым файлом как с обычным.
а вообще вроде я выкладывал на форуме солюшет анализатора логов... умел он достаточно много...
и если знать как им пользоваться то можно получить практически любую инифу и статистику из логов сервера.

benya 23-09-2005 15:13 357993

Это вы пишите о каком языке? :search:

xamelion 23-09-2005 15:50 358009

php, а нужно ?
:unsure:

benya 23-09-2005 16:31 358023

Perl :read: :sorry:

mar 23-09-2005 16:36 358026

benya
нет уж, тогда это Вы спрашиваете про какой язык? =)

benya 23-09-2005 16:49 358042

mar
Не понял вашего сообщения ;)

elfoflorien 23-09-2005 16:57 358043

benya
если ты программируешь в Unix (как и любой нормальный Perl-программер),
воспользуйся системными программами gzip, gunzip через системный вызов (system, ``), разархивируй логи в отдельную папку - и вперед.
А если хочешь все сделать через Perl, не привлекая систему, или если ты работаешь под windows, можешь поискать что-нибудь на сайте http://perl.org и http://perldoc.perl.org - возможно, повезет.

benya 23-09-2005 18:13 358077

Нет, к сожалению (или к счастью) на windows. Так удобнее и клепать шаблоны и тут же лазить в коде, в нете, в текстовых документах и пр. не перезагружая машину, хотя есть возможность поставить все "по правилам" сервер Linux (есть еще один комп.) или что-то еще. Ну это уже слишком жирно будет со всех точек зрения.

elfoflorien 23-09-2005 18:54 358097

benya
тогда можно попробовать WinZip для коммандной строки, по-моему он в стандартную установку включен, но надо только при установке галочку поставить; а потом все можно делать также, как и в варианте для Unix, т.е. системный вызов unzip из perl-программы.
А вообще, должен быть какой-нибудь модуль для Perl, поддерживающий работу с архивами (любыми).

mar 23-09-2005 19:15 358106

benya
просто ваша с xamelion перепискка
Цитата:

php, а нужно ?
Perl
прошла пока я отправляла свой вопрос. Теперь мой вопрос: значит через system не можем, через модули не хотим (а почему, кстати?). Что будем делать? Свой разархиватор писать? :)

elfoflorien 23-09-2005 20:34 358126

mar
Цитата:

значит через system не можем
почему не можем? есть же command line WinZip
Цитата:

через модули не хотим
найти бы эти модули... :search:

xamelion 23-09-2005 20:50 358130

Самое интересное в том, что скрипт должен как я понял работать у провайдера, а у него win32 ?
P.S. Прошу прощения если неправильно понял основной вопрос

mar 23-09-2005 23:18 358156

elfoflorien
Ну, собственно, xamelion на первый вопрос (
Цитата:

почему не можем? есть же command line WinZip
) ответил.
На
Цитата:

найти бы эти модули
- все в сад, ой, то есть в CPAN. На gzip там найдется всего лишь 332 ссылки. Удачной охоты :)
Но тут штука в том, что benya в первом посте в явном виде написал:
Цитата:

Только не пишите сообщения perldoc Arhive::Zlib или что-то еще подобное.
Потому и
Цитата:

не хотим

elfoflorien 24-09-2005 09:47 358235

mar
понятно... я просто не очень внимателен... :)

benya 24-09-2005 13:03 358266

В самом начале я задал конкретный вопрос. Средствами Perl, модулями, чем угодно. Без промежуточной записи. И причем тут WinZip.
Вы, господа, расказываете о погоде...

mar 24-09-2005 13:08 358269

benya
Цитата:

Только не пишите сообщения perldoc Arhive::Zlib или что-то еще подобное.
это и есть просьба обойтись без модулей :)

benya 25-09-2005 12:40 358472

Нет, вы не так поняли.

elfoflorien 25-09-2005 12:43 358474

benya
в таком случае -
Цитата:

- все в сад, ой, то есть в CPAN. На gzip там найдется всего лишь 332 ссылки. Удачной охоты

mar 26-09-2005 14:58 358721

benya
ну, собственно, да - там (в CPAN)действительно на любой вкус (специально залезла посмотрела)


Время: 18:05.

Время: 18:05.
© OSzone.net 2001-