- #!/bin/bash
- # 一次到离服务, 数据库最新数据时间监控, 实时数据延迟超过 30 分钟
- # 计算当前时间和 MySQL 数据库取值时间直接的差
- dbu=opuser
- dbp=elane2016
- dbs=/data3306/MySQL.sock
- db=shipdata
- #echo $dbu
- #echo $dbp
- #echo $dbs
- #echo $db
- # 通过 shell 执行 sql 语句获取一个时间, 使用 awk 指定结果的第二行, 使用 date 将时间转换成数字,%s 转换成秒为单位
- dbt=MySQL -u$dbu -p$dbp -S $dbs -D $db -e "SELECT max(update_time) FROM dynamic" | awk NR==2
- dbtt=date -d "$dbt" +%s
- echo $dbt
- echo $dbtt
- # 获取当前时间, 并转换成秒为单位的数字
- cur_d=date +"%Y-%m-%d %H:%M:%S"
- cur_dd=date -d "$cur_d" +%s
- echo $cur_d
- echo $cur_dd
- # 当前时间减去数据库获取的时间 结果是秒为单位
- int=expr $cur_dd - $dbtt
- echo $int
- # 将计算结果进行判断,-ge 大于等于
- if [ "$int" -ge "300" ];then
- echo 1
- else
- echo 0
- fi
来源: http://www.bubuko.com/infodetail-3119965.html