php在linux下檢測mysql同步狀態的方法

2022-10-06 11:09:15 字數 3232 閱讀 5214

這裡通過兩個例項來介紹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檔案,裡...