Mysql
如何獲取 MySQL 實例上次宕機的時間
是否可以確定 MySQL 實例最後一次宕機的時間?是否有一個日誌文件或任何東西可以記錄 MySQL 中的伺服器狀態?我在網上瀏覽了無數文章,但沒有找到任何可以提供任何幫助的東西。幫助!
這是我想出的獲取資訊的程式碼:
#!/bin/bash ###################### ##BY: kixes ## ##Created: 4-1-2016 ## ##Version: 1.01 ## ###################### ##################### ######Variables###### ############################################################# #LogFile is where the ErrorLog dumps its filtered error log data LogFile=/var/lib/mysql/admin/logs/shutdowns.log #Error log holds the raw information from the MySQL Error log filtered by grep. ErrorLog='grep 'Starting' /var/lib/mysql'`hostname`'.err' #OutputFile holds a comma delimited set of values of hostname,shutdown date, shutdown time, startup time OutputFile=/var/lib/mysql/admin/logs/shutdowns_`date +"%Y-%m-%d"`.csv ############################################################# ######Variables###### ##################### ################## ######Header###### ############################################################# #Write (Not append) to $LogFile $ErrorLog > $LogFile #Writes (Not append) the table headers echo "hostname,Shutdown_date,Shutdown_time,Startup_time" > $OutputFile ############################################################# ######Header###### ################## ################ ######Body###### ############################################################# #Do not change variables! q=0 intholder=-1 #Go line by line in $LogFile. '$i' is the current line (string). while read i; do ((q++)) #If the line ($i) is a line containing shut-down information then gathers in shut-down information if [[ $i =~ "Starting shutdown..." ]] then shutdowndate=`echo "$i" | grep -Eo '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}'` shutdowntime=`echo "$i" | grep -Eo '[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}'` ((intholder=$q + 1)) fi #If the line ($i) is a line containing start-up information then gather that information if [[ "$intholder" == "$q" ]] then startuptime=`echo "$i" | grep -Eo '[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}'` echo "MySQL instance:`hostname` went down on $shutdowndate at $shutdowntime and started at $startuptime" echo "`hostname`,$shutdowndate,$shutdowntime,$startuptime" >> $OutputFile fi #End loop done <$LogFile ############################################################# ######Body###### ################
該文件
mysql.log
顯示啟動和關閉。
SHOW VARIABLE LIKE 'log_error';
說文件在哪裡。但是,還要檢查SHOW VARIABLE LIKE 'log_output';
. (不知道這個日誌是不是被那個控制的。)
SHOW STATUS LIKE 'Uptime';
表示它已經上升了多少秒。