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