- 论坛徽章:
- 1
|
IBM 每次下载系统补丁后,在下载目录中保存一个文件:dlmgr.pro, 这个文件记录所有相关下载信息。
为了保证每一个下载文件一致性,自己写了一个脚本对下载文件进行检查。检查sha1是否与官方发布的一致。
#!/usr/local/bin/php -q
<?
set_time_limit(0);
echo "r_name\tr_size\tr_date\tr_sha\tf_date\tcheck\n";
$fp=fopen("dlmgr.pro","r");
$numfile=0;$pass=0;
while ($buf=fgetcsv($fp,1024,"=") ) {
switch ($buf[0]) {
case ".file":
$newfile=1; break;;
case "..size":
$newfile=2; $size=$buf[1]; break;;
case "..sha":
$newfile=2; $sha=strtolower($buf[1]); break;
case "..name":
$newfile=2; $name=$buf[1]; break;;
case "..date":
$newfile=4; $date=$buf[1]; break;;
case ".allFiles":
$newfile=8; break;
}
if ($newfile==4) {
echo "$name\t$size\t$date\t$sha\t";
$numfile++;
$fsize=filesize($name);
$fsha=sha1_file($name);
$fdate=filectime($name);
if ( strcmp($sha,$fsha) == 0 ) {
$pass++;
echo "\t$fdate\tSHA_pass\n";
} else echo "\t--------\t->SHA_fail\n";
}
} // end of read file
echo "Total checksum files = $numfile, and passed = $pass\n";
fclose($fp);
?> |
|