這裡通過兩個例項來介紹mysql同步狀態檢測實現方法。**如下:
複製** **如下:
#!/bin/sh
#check mysql_sl**e status
#crontab time 00:10
mysql_user="root"
mysql_pwd="123456"
mysql_sl**e_log="/tmp/check_mysql_sl**e.log"
email="1351010****@139.com"
mysql_port=`netstat -na|grep "listen"|grep "3306"|awk -f[:" "]+ ''`
mysql_ip=`ifconfig eth0|grep "inet addr" | awk -f[:" "]+ ''`
mysql_sl**e_status=$(/usr/local/webserver/mysql/bin/mysql -u root -psylc23hua -s /tmp/mysql.sock -e
"show sl**e statusg" | grep -i "running")
io_env=`echo $mysql_sl**e_status | grep io | awk ' '`
sql_env=`echo $mysql_sl**e_status | grep sql | awk ''`
now=$(date -d today +'%y-%m-%d %h:%m:%s')
if [ "$mysql_port" = "3306" ];then
echo "mysql is running!"
else
mail -s "warn!server: $mysql_ip mysql is down" "$email"
fi
if [ "$io_env" = "yes" -a "$sql_env" = "yes" ];then
echo "sl**e is running!"
else
echo "[ $now ] sl**e is not running!" >> "$mysql_sl**e_log"
cat "$mysql_sl**e_log" | mail -s "warn! $_replicate_ermszwbiwioror" "$email"
fi
exit 0
php例項**,**如下:
check_rep.php:
複製** **如下:
if(emptyempty($_request["key"])) die(':) missing key');
if($_request["key"] != 'xupeng') die(':) error key');
in"mysql_instance.php");
include("check_status_api.php");
define("username", "使用者名稱");
define("password", "密碼");
define("debugmode", false);
$instances = get_instances();
if($instances)else
foreach($instances as $host)
if($res["sl**e_sql_running"] <> "yes")
break;
case 2:
$memo = "資料庫未設定同步";
break;
} echo "
n";
}else
} echo "
instance
result
sl**e_io_running
sl**e_sql_running
master_host
master_port
replicate_do_db
memo
instance
result
sl**e_io_程式設計客棧running
sl**e_sql_running
master_host
master_port
replicate_do_db
sl**e_io_state
last_io_errno
last_io_error
last_sql_errno
last_sql_error
n";
echo <<
end;
}else
check_status_api.php:
複製** **如下:
/* * 檢查mysql伺服器的同步狀態
*/ function check_mysql_replication_status($host, $username, $password)
$query = "show sl**e status";
$res = @mysql_query($query, mszwbiwio$dbh);
$err = @mysql_error();
if($err)
$row = mysql_fetch_array($res);
$r = $row;
if(($r["sl**e_io_running"] == "yes") && ($r["sl**e_sql_running"] == "yes"))
elseelse
} }catch(exception $e)
return($r);
}mysql_instance.php:
複製** **如下:
//grant replication client on *.* to '使用者名稱'@'監控主機ip' identified by '密碼'; $mysql_instances =
array();
$mysql_instances = "遠端ip:埠";
function get_instances()
將以上三個php檔案放在虛擬目錄中,然後通過url訪問.
訪問方式:http://ip/check_repl.php?key=xupeng
本文標題: php在linux下檢測mysql同步狀態的方法
本文位址:
linux 下利用 crontab 備份mysql
vi mysql bak dbbackup.sh 目錄自定義 在指令碼中編輯 mysqldump uusername ppassword default character set utf8 dbname gzip mysql bak bak date y m d h m s sql.gz 將其中的...
在Linux下編譯php擴充套件
在windows下我們需要開啟某個擴充套件,很容易。一般情況下,dll檔案都已經安靜地躺在extension目錄下,只等待你在php.ini裡將它前面的 去掉。而在linux,你cd到php的extensions目錄往往發現裡面空空的。或許只有幾個so檔案落寞地待著。你需要到php原始碼包裡尋找,希...
在Linux下編寫php擴充套件
或者在學習中有什麼問題歡迎交流 2.進入原始碼目錄中的ext目錄中 3.執行.ext skel extname myext 這是擴充套件的名字 生成擴充套件框架 ps 如果ext skel無法執行,請檢視ext skel檔案是否有可執行許可權 4.編寫擴充套件函式 a 我們開啟myext.c檔案,裡...