shell脚本实现10秒保存一次mysql processlis
2019-01-09 本文已影响12人
SailSea
10秒执行一次的crontab:
由于cron时间表达式最多支持到分钟级别的设定,所以加了多个延时任务来达到每10秒一次目的。不想写这么多定时任务,也可以写个循环shell脚本循环6次,每次阻塞10秒来达到目的。
* * * * * /usr/local/show_processlist.sh
* * * * * sleep 10;/usr/local/show_processlist.sh
* * * * * sleep 20;/usr/local/show_processlist.sh
* * * * * sleep 30;/usr/local/show_processlist.sh
* * * * * sleep 40;/usr/local/show_processlist.sh
* * * * * sleep 50;/usr/local/show_processlist.sh
shell脚本:
按天分文件保存数据,只保留30天
#!/bin/bash
tdate=/data/processlist_histroy/processlist_histroy_$(date "+%Y%m%d").log;
echo --------------------$(/bin/date)--------------------- >> $tdate
/data/mysqldatasp/bin/mysql -u root -p'******' -h10.66.95.136 -P3301 -Bse "show full processlist" >> $tdate
#只保留30天的数据
find /data/processlist_histroy -mtime +30 -type f -name 'processlist_histroy_*.log' -exec rm -rf {} \;