NAV_MENU
賽は投げられた。人事尽くして天命待つと言うか、転がりだした物は止められないというか。まぁ、ちょとは覚悟しとけよ。
基本的に毎日更新。出来なかったときは遡ってやります。多分。きっと。出来たら良いな

2006/09/03 (Sun)

夕方から学校へ忘れ物を取りに行く。
なんで忘れもんしたんだろ(:_;)

家でゆっくりしたかったのに(^^;

squidのキャッシュから何がキャッシュされてるか調べるスクリプト作ってみた。
store.logから構成するのが筋なんだろうけど、store.logそんなに残してられるかつーの(^^;

使い方によってはプライバシー侵害しまくれそうなので妖注意。
大昔の恥ずかしいものがキャッシュされてることが判明したりしてもあたしは知りません。
当然動作保証もしません。

squidcacheperse.pl

#!/usr/local/bin/perl

$cachedir="/var/squidcache";
$cachedir=$cachedir."/*/*/[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F]";

@files=glob($cachedir);

foreach(@files) {
$file=$_;
open(IN,$file) || next;
$log_bytes = read IN, $data, 1;
$log_bytes = read IN, $data, 4;
$size = unpack("I",$data)-5;
$pos=1;
while($pos < $size) {
$log_bytes = read IN, $data, 1;
$type = unpack("c",$data);
$log_bytes = read IN, $data, 4;
$isz = unpack("I",$data);
$log_bytes = read IN, $data,$isz;
$pos+=5+$isz;

if ($type == 3) {
$md5=unpack('H*',$data);
}
if ($type == 4) {
$uri=unpack('Z*',$data);
chomp $uri;
}
if ($type == 5) {
#time stamp,time last ref.,time expire,time object modified,size,ref. time,flg
@stat = unpack('iiiiISS',$data);
}
}
close(IN);

print $uri."\n";
}


要らないオブジェクトパージするときにでも使ってくれい。


squidcacheperse.pl | grep \.zip$ | xargv -L1 squidclient -m PURGE -p 3128

みたいな感じで。

20万オブジェクト有ると、サーチに20分程度かかるようです。