php监控获取mysql监控信息的脚本
#!/usr/bin/php
<?php
if((count($argv)) <= 2){
exit("params error");
}
$STATS_TYPE = $argv[1];
$DB_HOST = $argv[2];
$DB_USER = "zabbixstats";
$DB_PWD = "123456";
$DB_PORT = 3306;
if(isset($argv[3])){
$DB_PORT = $argv[3];
}
$cache_file = "/tmp/mysql-status-".$DB_HOST;
$row_id = date("Y-m-d H:i----");
$row = file_get_contents($cache_file);
$cache_str = strstr($row, $row_id);
# 如果缓存文件不存在,则读取数据库并成缓存文件
if(!$cache_str){
$DB_HOST_STR = $DB_HOST.":".$DB_PORT;
$conn = mysql_connect($DB_HOST_STR,$DB_USER,$DB_PWD);
$result = mysql_query("show status",$conn);
$temp_arr = array();
while($row = mysql_fetch_array($result)){
$temp_arr[$row['Variable_name']] = $row['Value'];
}
mysql_close($conn);
file_put_contents($cache_file, $row_id.serialize($temp_arr));
#print_r($temp_arr);
#echo "use mysql";
}else{
$temp_arr = unserialize(str_replace($row_id, "", $row));
#print_r($temp_arr);
#echo "use cache";
}
echo isset($temp_arr["$STATS_TYPE"]) ? $temp_arr["$STATS_TYPE"] : "";