定時傳送MySQL的TOP 10慢查詢SQL

2021-07-09 07:43:42 字數 1286 閱讀 4179

幫乙個開發朋友實現乙個功能:他希望 每天能定時傳送前一天的top 10 的慢查詢sql 給研發的負責人。

因為不太懂資料庫,所以最好不要安裝第三方的工具。

因此用shell 寫了乙個指令碼,把這個指令碼加入到crontab裡,即可實現每天傳送前一天的top 10 慢查詢。

#!/bin/bash

mysql=`which mysql`

myslow=`which mysqldumpslow`

backupuser=root

backuppass=123456

backupport=3306

backupip=127.0.0.1

#需要將/opt/data/3306/logs 替換為實際的慢查詢日誌的存放路徑

log_file_name=/opt/data/3306/logs/`date +%y%m%d`.log

#前一天的慢查詢檔案名

last_log_file_name=/opt/data/3306/logs/`date +%y%m%d -d"-1 day"`.log

#存放top 10 慢查詢的臨時檔案

mail_content_file=/opt/data/3306/logs/mail.log

#定義郵件的主題

subject="daily mysql top10 slow sql `date +%f' '%t`"

#定義收件人的郵箱

email="***xx@***.com"

mycmd="$mysql -u$backupuser -p$backuppass -h$backupip -p$backupport "

# 因為預設mysql的慢查詢日誌會不斷的增長,因此我們根據日期來設定每天的慢查詢檔案名。這樣即可實現每天乙個慢查詢檔案。

$mycmd -e "set global slow_query_log_file='$log_file_name'"

$myslow -s t -t 10 $last_log_file_name>>$mail_content_file

/usr/bin/dos2unix $mail_content_file

/bin/mail -s "$subject" "$email"<$mail_content_file

rm -rf $mail_content_file

# 刪除7天前的慢查詢日誌

rm -rf /opt/data/3306/logs/`date +%y%m%d -d"-7 day"`.log

TOP 10 安全漏洞

top 10 安全漏洞 1 弱口令 弱的 易於猜中的和重新使用以前用過的口令都損害安全。測試賬戶擁有的口令強度弱且幾乎沒有監控。不要在系統或因特 點重新使用口令。2 沒有打過補丁的軟體 沒有打過補丁的 過時的 有漏洞的或仍處於預設配置狀態的軟體。大多數漏洞都可以通過及時的打上補丁和測試予以避免。充分...

程式設計常見錯誤TOP10

結合以前工作經驗,整理的編碼常見的錯誤 推薦風格,及原因 程式設計常見錯誤top10 返回值使用錯誤 呼叫函式的執行結果對流程有影響,卻未判斷返回值的 返回值使用不準確 返回值的巨集和判斷的巨集不是同一套 錯誤的型別轉換,返回值型別和賦值變數型別不一致 斷言的使用 在可能出現的位置使用斷言 系統資源...

熱門wordpress外掛程式 TOP 10

自動生成 的sitemap,有利於搜尋引擎蜘蛛更好的爬行 頁面,提高收錄量。生成聯絡表單,插入wordpress頁面,方便讀者與博主聯絡。功能強大的相簿外掛程式,如果部落格的很多,推薦使用這款外掛程式管理。wordpress.com的統計系統,使用這個外掛程式,可以在部落格後台檢視 流量,而且不會對...