- 論壇徽章:
- 1
|
IBM 每次下載系統(tǒng)補丁后,在下載目錄中保存一個文件:dlmgr.pro, 這個文件記錄所有相關(guān)下載信息。\r\n為了保證每一個下載文件一致性,自己寫了一個腳本對下載文件進(jìn)行檢查。檢查sha1是否與官方發(fā)布的一致。\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?> |
|