利用expect的超时功能实现检测mysql状态的超时
利用expect的超时功能实现检测mysql状态的超时mysqladmin以及mysql都没有超时功能。在系统状态异常时,当我们利用这两者来检测mysqld状态,有可能会长时间没有响应,而检测脚本如果没有超时功能,则无法迅速发出报警。
因此需要增加超时功能,在mysql或者mysqladmin超过特定时间而无响应时,能够发出报警,甚至发起切换。
简单的例子:
脚本test的内容:
#!/usr/bin/expect
spawn mysqladmin --socket=/usr/local/Calpont/mysql/lib/mysql/mysql.sock ping
set timeout $argv
expect "mysqld is alive" { exit 0 }
exit 1
运行
./test 5
spawn mysqladmin --socket=/usr/local/Calpont/mysql/lib/mysql/mysql.sock ping
mysqld is alive
如果5秒种没有响应,或者ping的结果不是mysqld is alive,则脚本异常退出(exit 1)
使用expect应该是一种比较简单的实现办法。
页:
[1]