Показать полную графическую версию : Как разархивировать gzip (.gz)
Господа, столкнулся с проблемкой. Хочу сделать мини анализатор логов (уже сделал). Проблема состоит том что хостер пишет логи сразу в ".gz". Ну и вобщем имеет структуру такую : arhive_log.gz внутри которого уже находится сам лог. Как его превратить в нормальный вид, желательно без промежуточной записи. Разархивировать, выбрать нужные строки, закрыть.
Только не пишите сообщения perldoc Arhive::Zlib или что-то еще подобное.
?
xamelion
22-09-2005, 14:49
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
benya
если правильно помню то есть gfopen() gfread() gfclose() которые позволяют работать со сжатым файлом как с обычным.
а вообще вроде я выкладывал на форуме солюшет анализатора логов... умел он достаточно много...
и если знать как им пользоваться то можно получить практически любую инифу и статистику из логов сервера.
Это вы пишите о каком языке? :search:
xamelion
23-09-2005, 15:50
php, а нужно ?
:unsure:
benya
нет уж, тогда это Вы спрашиваете про какой язык? =)
mar
Не понял вашего сообщения ;)
elfoflorien
23-09-2005, 16:57
benya
если ты программируешь в Unix (как и любой нормальный Perl-программер),
воспользуйся системными программами gzip, gunzip через системный вызов (system, ``), разархивируй логи в отдельную папку - и вперед.
А если хочешь все сделать через Perl, не привлекая систему, или если ты работаешь под windows, можешь поискать что-нибудь на сайте http://perl.org (http://perl.org/) и http://perldoc.perl.org - возможно, повезет.
Нет, к сожалению (или к счастью) на windows. Так удобнее и клепать шаблоны и тут же лазить в коде, в нете, в текстовых документах и пр. не перезагружая машину, хотя есть возможность поставить все "по правилам" сервер Linux (есть еще один комп.) или что-то еще. Ну это уже слишком жирно будет со всех точек зрения.
elfoflorien
23-09-2005, 18:54
benya
тогда можно попробовать WinZip для коммандной строки, по-моему он в стандартную установку включен, но надо только при установке галочку поставить; а потом все можно делать также, как и в варианте для Unix, т.е. системный вызов unzip из perl-программы.
А вообще, должен быть какой-нибудь модуль для Perl, поддерживающий работу с архивами (любыми).
benya
просто ваша с xamelion перепискка
php, а нужно ?
Perl
прошла пока я отправляла свой вопрос. Теперь мой вопрос: значит через system не можем, через модули не хотим (а почему, кстати?). Что будем делать? Свой разархиватор писать? :)
elfoflorien
23-09-2005, 20:34
mar
значит через system не можем
почему не можем? есть же command line WinZip
через модули не хотим
найти бы эти модули... :search:
xamelion
23-09-2005, 20:50
Самое интересное в том, что скрипт должен как я понял работать у провайдера, а у него win32 ?
P.S. Прошу прощения если неправильно понял основной вопрос
elfoflorien
Ну, собственно, xamelion на первый вопрос (почему не можем? есть же command line WinZip ) ответил.
На найти бы эти модули - все в сад, ой, то есть в CPAN (http://search.cpan.org/). На gzip там найдется всего лишь 332 ссылки. Удачной охоты :)
Но тут штука в том, что benya в первом посте в явном виде написал: Только не пишите сообщения perldoc Arhive::Zlib или что-то еще подобное.
Потому и не хотим
elfoflorien
24-09-2005, 09:47
mar
понятно... я просто не очень внимателен... :)
В самом начале я задал конкретный вопрос. Средствами Perl, модулями, чем угодно. Без промежуточной записи. И причем тут WinZip.
Вы, господа, расказываете о погоде...
benya
Только не пишите сообщения perldoc Arhive::Zlib или что-то еще подобное.
это и есть просьба обойтись без модулей :)
elfoflorien
25-09-2005, 12:43
benya
в таком случае -
- все в сад, ой, то есть в CPAN. На gzip там найдется всего лишь 332 ссылки. Удачной охоты
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.