如何编写运行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
答案 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”查看完整的查询。