每5秒获取一次MySQL进程列表日志

时间:2016-05-06 14:12:59

标签: mysql linux database

如何编写运行MySQL" show processlist"的cron作业?在早上5点到早上7点之间每隔5秒在日志文件中命令和存储一次?

我知道我在cron中可以拥有的最短时间是一分钟而不是秒。如果我需要一个脚本,我正在寻找Bash的解决方案。

我认为这个cron工作在早上5点到早上7点之间每隔5分钟工作一次。

*/5 5-7 * * * mysql -ufoo --password='' -te "show full processlist" > /home/foo/log/show_processlist.log.`date +\%Y\%m\%d-\%H\%M` 2>&1

4 个答案:

答案 0 :(得分:1)

将chron任务设置为在05:00运行,该任务执行循环时间值的脚本,并在这些时间值之间休眠5秒。可能不是5秒,因为睡眠通常是最小睡眠时间,但应该足够接近。

答案 1 :(得分:1)

您可以编写shell / Python / php /其他应该由cron作业运行的脚本。

此脚本应具有以下逻辑(伪代码):

i = 0
while i < 20:
   i++
   show full processlist
   delay 4 sec

答案 2 :(得分:0)

是否希望每秒执行bash命令以查看FULL查询?

while [ true ]; do mysql -u MYSQLUSERNAME -p'MYSQLUSERPASSWORD' --execute='SHOW FULL processlist;'; sleep 1; done;

假设您在安全的环境中输入原始MYSQL密码;)。

答案 3 :(得分:0)

您可以使用mysqladmin这是MySQL CLI命令来管理数据库,

mysqladmin -u root -p -i 5进程

随时按 CTRL + C 停止正在运行的命令,并使用“ --verbose”查看完整的查询。