#!/bin/bash
clear
版权信息
判断是否在SSR目录下
if [ -e logrun.sh ]; then
echo
else echo 请将脚本放到SSR根目录下运行!
exit
fi
判断是否安装数据库
which mysql >mysqlpath
if [ $? -eq 1 ]; then
echo 数据库客户端未安装,正在执行安装...
sudo yum -y install mysql
else echo 检测到已安装数据库客户端...
fi
判断有无账号密码信息
if [ -e temp ]; then
username=$(cat temp| awk 'NR==1')
password=$(cat temp| awk 'NR==2')
dbname=$(cat temp| awk 'NR==3')
host=$(cat temp| awk 'NR==4')
else
如果是第一次运行那么录入账号密码保存到temp文件中
echo date -d"1 week ago" +"%F %H:%M:%S" 首次运行,开始配置...
echo -n 请输入远程数据库用户名:
read username
echo $username >>temp
echo -n 请输入远程数据库密码:
stty -echo
read password
stty echo
echo $password >>temp
echo
echo -n 请输入远程数据库名:
read dbname
echo $dbname >>temp
echo -n 请输入远程数据库地址:
read host
echo $host >>temp
echo
echo 信息录入完成,正在执行操作...
fi
测试数据库连接,账号密码没错的话就继续操作
echo date -d"1 week ago" +"%F %H:%M:%S" 正在测试数据库连接...
dbtest=mysql -u$username -p$password -h$host $dbname <
if [ ! -n "$dbtest" ]; then
echo 数据库连接失败,请重新运行脚本!
rm -rf temp
exit
exit
else echo date -d"1 week ago" +"%F %H:%M:%S" 数据库连接成功!
fi
开始运行,先重启一下节点
echo date -d"1 week ago" +"%F %H:%M:%S" 节点重启中...
echo date -d"1 week ago" +"%F %H:%M:%S" 程序开始运行,重启节点 >>run.log
/bin/bash stop.sh
sleep 3s
/bin/bash logrun.sh
监测开始
echo $time 远程节点监测开始...
echo $time 当前每分钟监测一次节点...
set i=0
set j=0
最外层的for循环,定义一个无限循环
for((i=0;i<10;))
do
let "j=j+1"
读取数据库中的节点用户数量和用户信息
data0=mysql -u$username -p$password -h$host $dbname <
echo $data0 >count0
sed -i 's/id //g' count0
userdata0=mysql -u$username -p$password -h$host $dbname <
一分钟后再次读取数据库中的用户数量和用户信息
sleep 1m
data1=mysql -u$username -p$password -h$host $dbname <
echo $data1>count1
sed -i 's/id //g' count1
userdata1=mysql -u$username -p$password -h$host $dbname <
定义循环内的变量
time=date -d"1 week ago" +"%F %H:%M:%S"
开始判断
1.判断用户数据是否修改
if [[ $(cat count1) -eq $(cat count0) && $userdata0 != $userdata1 ]] ;then
/bin/bash stop.sh
sleep 3s
/bin/bash logrun.sh
echo $time 发现用户信息修改,节点更新完成!
echo $time 用户信息修改,更新节点... >>run.log
2.判断用户是否无操作
elif [[ $(cat count1) -eq $(cat count0) && $userdata0 == $userdata1 ]] ;then
echo date -d"1 week ago" +"%F %H:%M:%S" 节点第 $j 次监测中...
3.判断用户是否删除
elif [[ $(cat count1) -lt $(cat count0) ]] ;then
/bin/bash stop.sh
sleep 3s
/bin/bash logrun.sh
echo $time 发现用户删除,节点更新完成!
echo $time 用户删除,更新节点... >>run.log
4.判断用户是否注册
elif [[ $(cat count1) -gt $(cat count0) ]]; then
/bin/bash stop.sh
sleep 3s
/bin/bash logrun.sh
echo $time 发现用户注册,节点更新完成!
echo $time 用户注册,节点更新... >>run.log
else echo 出错了!
fi
done