最近一段時(shí)間,我剛剛進(jìn)入一家新公司,并接手了這里的一個(gè)站點(diǎn),由于這個(gè)站點(diǎn)的架構(gòu)設(shè)計(jì)不太合理,導(dǎo)致MySQL的壓力始終很大,經(jīng)常出現(xiàn)超時(shí)的Locked進(jìn)程,于是編寫(xiě)了一段Linux的Shell腳本來(lái)定時(shí)kill掉這些進(jìn)程.
腳本代碼如下:
- #!/bin/bash
- mysql_pwd="xxxxxx" #mysql的root密碼
- mysql_exec="/usr/local/mysql/bin/mysql"
- tmp_dir="/tmp"
- file_sh="$tmp_dir/mysql_kill_locked.sh"
- file_tmp="$tmp_dir/mysql_kill_locked.tmp"
- file_log="$tmp_dir/mysql_kill_locked.log" #日志
- $mysql_exec -uroot -p$mysql_pwd -e "show processlist" | grep -i "Locked" > $file_tmp
- cat $file_tmp >> $file_log
- for line in `cat $file_tmp | awk '{print $1}'`
- do
- echo "$mysql_exec -uroot -p$mysql_pwd -e "kill $line"" >> $file_sh
- done //Vevb.com
- chmod +x $file_sh
- sh $file_sh #執(zhí)行臨時(shí)腳本
- > $file_sh #清空臨時(shí)腳本
最后,將這段腳本加入到crontab,定時(shí)執(zhí)行即可.
新聞熱點(diǎn)
疑難解答
圖片精選