mysql 伺服器巡檢指令碼
crontab -l
# 每天早上1點 伺服器巡檢0 1 * * * /bin/bash /data/backup/scripts/check_server.sh > /data/backup/log/my3306/check_server.log 2>&1
/data/backup/scripts/check_server.sh
#! /bin/bash
### AUTHOR: abc
### EMAIL: abc@sina.com
### DATE: 2018/03/22
### REV: 3.0
# 資料庫伺服器 效能巡檢報告
source /etc/profile
source /root/.bash_profile
#################################
# #
# 全域性配置 #
# #
#################################
# 巡檢日期
CheckDate=`date +"%Y-%m-%d"`
# 巡檢主機
CheckServer=`hostname`
# 巡檢IP
CheckIP=`ifconfig eth0 |grep "inet " |awk '{print $2}'`
# 巡檢報告
CheckReport=/data/backup/log/my3306/check_server.log
# 例項名
InstanceName=my3306
# 資料目錄
DataDir=/data/mysql/my3306
# 備份同步路徑
TargetRsyncDir=/data/backup/mysql/my3306
# 收件人
addr="abc@sina.com ace@sina.com bbc@ sina.com bbs@ sina.com"
# 郵件標題
subj="${CheckServer}(${CheckIP})巡檢報告"
# 郵件正文
body=$CheckReport
# 正文標題
title="${CheckServer}(${CheckIP})巡檢報告"
#################################
# #
# 巡檢內容 #
# #
#################################
# 格式化標題函式
function f_format(){
echo "##############################################################################"
echo "# "
echo "# "$1" "
echo "# "
echo -e "##############################################################################\n"
}
# 表空間使用率檢查函式
function f_check_tbs(){
echo "SELECT a.schema_name db_name,
CONCAT(IFNULL(ROUND((SUM(b.data_length) + SUM(b.index_length)) / 1024 / 1024,
0),
0),
'M') total,
CONCAT(IFNULL(ROUND(((SUM(b.data_length) + SUM(b.index_length)) -
SUM(b.data_free)) / 1024 / 1024,
0),
0),
'M') used,
CONCAT(IFNULL(ROUND(SUM(data_free) / 1024 / 1024, 0), 0), 'M') free,
CONCAT(IFNULL(ROUND((((SUM(b.data_length) + SUM(b.index_length)) -
SUM(b.data_free)) /
((SUM(b.data_length) + SUM(b.index_length))) * 100),
0),
0),
'%') ratio,
COUNT(table_name) TABLES
FROM information_schema.schemata a
LEFT JOIN information_schema. TABLES b
ON a.schema_name = b.table_schema
WHERE a.schema_name NOT IN
('information_schema', 'mysql', 'performance_schema')
GROUP BY a.schema_name
ORDER BY 1;"
}
f_format $title
f_format "01、CPU空閒率、系統負載"
top - b -n1 -d1|head -n5
f_format "02、可用記憶體"
free -g
f_format "03、磁碟空間使用率"
df -Th
f_format "04、磁碟IO效能"
iostat -d -m 2 5
f_format "05、資料庫例項狀態"
ps -ef | grep mysql|grep -v "grep"
f_format "06、資料庫監聽狀態"
netstat -atun| grep 3306
f_format "07、資料庫大小"
echo "資料目錄: $DataDir"
du -ch --max-depth=1 $DataDir |grep total|cut -f 1
f_format "08、資料庫表空間使用率"
f_check_tbs|mysql --login-path=my3306
f_format "09、錯誤日誌"
grep `date +"%Y-%m-%d"` $DataDir/error.log
f_format "10、備份狀態"
echo "備份路徑: $TargetRsyncDir"
ls -hl $TargetRsyncDir |grep `date +"%Y%m%d"`
f_format "THE END ! "
#applied_email
mail -s $subj $addr < $body
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-2775160/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql巡檢指令碼MySql指令碼
- dba巡檢指令碼指令碼
- sqlserver 巡檢指令碼SQLServer指令碼
- SQLServer巡檢指令碼SQLServer指令碼
- AIX巡檢指令碼(轉)AI指令碼
- 系統巡檢指令碼指令碼
- (轉)ORACLE 巡檢指令碼Oracle指令碼
- SQL SERVER巡檢指令碼SQLServer指令碼
- shell指令碼企業巡檢指令碼
- 巡檢指令碼OS+Oracle指令碼Oracle
- python編寫的簡單的mysql巡檢指令碼PythonMySql指令碼
- db2巡檢小指令碼DB2指令碼
- oracle 巡檢指令碼(自動化)Oracle指令碼
- oracle、filesystem、backup日常巡檢指令碼Oracle指令碼
- Oracle運維指令碼-巡檢(RAC版)Oracle運維指令碼
- Linux 系統健康巡檢指令碼Linux指令碼
- Oracle 10G RAC巡檢指令碼Oracle 10g指令碼
- (轉):oracle、filesystem、backup日常巡檢指令碼Oracle指令碼
- Oracle運維指令碼-巡檢(單機版)Oracle運維指令碼
- 【SCRIPT】Oracle日常巡檢指令碼通用版Oracle指令碼
- Linux基礎服務巡檢指令碼模板Linux指令碼
- Oracle運維指令碼-巡檢(RAC版本)-V1.1Oracle運維指令碼
- MySQL資料庫健康檢查--MySQL巡檢MySql資料庫
- shell指令碼實現多臺伺服器自動巡檢--可參考學習指令碼伺服器
- 透過 Prometheus 編寫 TiDB 巡檢指令碼(指令碼已開源,內附連結)PrometheusTiDB指令碼
- 【SCRIPT】Oracle12C日常巡檢指令碼通用版Oracle指令碼
- SharePlex 基於Solaris 10 Linux自動巡檢指令碼Linux指令碼
- 使用RDA巡檢MYSQL資料庫MySql資料庫
- 指令碼監控MySQL伺服器指令碼MySql伺服器
- 檢測mysql狀態的指令碼MySql指令碼
- SCRIPT】Oracle巡檢報告html格式樣例指令碼,帶趨勢圖OracleHTML指令碼
- Oracle 資料庫巡檢指令碼 單例項 RAC 輸出HTML格式Oracle資料庫指令碼單例HTML
- 小麥苗資料庫巡檢指令碼V7.0,支援Oracle、MySQL、SQL Server和PG資料庫資料庫指令碼OracleMySqlServer
- 使用Linux expect批次巡檢Linux Aix Solaris磁碟使用率指令碼LinuxAI指令碼
- 轉:AIX 系統巡檢指令碼_超好用,不用一條條輸入命令了AI指令碼
- oracle巡檢(轉)Oracle
- oracle的巡檢Oracle
- Laravel 透過遷移指令碼建立MySQL檢視Laravel指令碼MySql