[Comm] Squid
BSW
=?iso-8859-1?q?bsw71_=CE=C1_mail=2Eru?=
Ср Сен 29 15:52:15 MSD 2004
max wrote:
> А есть автоматическая "ломалка"? Она то мне и нужна, чтоб казала что
> вообще в кеше лежит и позволяла взять это что-то от туда.
Вот же народ ленивый пошел! :-)
Вот тебе. Умеет следующее:
- показывать исходный URL (ключ -u);
- показывать тип (ключ -t);
- выдавать нагора тело (ключ -b).
Никаких проверок. Вызывать так:
`script [-t] [-u] [-b] <1234 >coolgirl.jpg`, где 1234 - файл из
сквидового кеша.
Как скормить весь кеш целиком - man find.
-==================================================-
#!/usr/bin/perl
# читаем параметры ком.строки
while ($p = shift)
{
if ("$p" eq "-u") { $url = 1; } # показывать URL
elsif ("$p" eq "-t") { $type = 1; } # показывать тип контента
elsif ("$p" eq "-b") { $body = 1; } # отдать тело
else { print "Плохие параметры\n"; exit; };
};
$tmp = $/;
# читаем длину заголовка
read(STDIN, $buf, 5);
(undef, $headlen) = unpack("HIH*", $buf);
# читаем URL
seek(STDIN, 0x3C, SEEK_SET);
$/ = "\0";
$URL = <>;
chomp $URL;
# читаем заголовок HTTP
seek(STDIN, $headlen, SEEK_SET);
$/ = "\r\n\r\n";
$HTTP = <>;
chomp $HTTP;
$/ = $tmp;
$err = 1;
if ($url)
{
print "$URL\n";
$err = 0;
};
if ($type)
{
$HTTP =~ /^Content-Type:\s(.+)\r\n/m;
print "$1\n";
$err = 0;
};
if ($body)
{
undef $/;
print <>;
$/ = $tmp;
$err = 0;
};
exit($err);
-==================================================-
Подробная информация о списке рассылки community