使用shell脚本进行mysql操作

Rails定时任务中IP地址验证
本文介绍了一个在Rails应用的定时任务中用于检查IP地址有效性的Shell脚本。该脚本通过正则表达式验证IP地址格式,并利用awk进行IP段拆分,确保每个部分都在合法范围内。此外,还提供了配置默认区域IP的功能,包括输入提示、错误处理及数据库更新。
还是cronjob的一部分,就是在Rails的定时任务里,后台交互运行

CheckIPAddress()
{
echo $1 |grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null
if [ $? = 1 ]; then
return 1
else
a=`echo $1 | awk -F. '{print $1}'`
b=`echo $1 | awk -F. '{print $2}'`
c=`echo $1 | awk -F. '{print $3}'`
d=`echo $1 | awk -F. '{print $4}'`
#echo $a $b $c $d

for loop in $a $b $c $d
do
if [ $loop -ge 255 ] || [ $loop -lt 0 ]; then
return 2
fi
done
fi

}


ConfigureDefaultRegion() {
echo "Please input Region ip"
ret=1
while [ $ret != 0 ]
do
read region_ip
CheckIPAddress $region_ip
ret=$?
#echo $ret
if [ $ret = 1 ]; then
echo "Wrong IP address, please reinput Region IP:"
fi
done
/usr/bin/mysql -u root realworx_production -e "update regions set ip='$region_ip' where id=1" 1>/dev/null 2>/dev/null
if [ $? = 0 ]; then
/usr/bin/mysql -u root realworx_production -e "update config_params set val=1 where ident=55" 1>/dev/null 2>/dev/null
echo "set '$region_ip' as Default and Admin Region IP"
else
val=`/usr/bin/mysql -u root realworx_production -e "select id from regions where ip='$region_ip'" | awk '{if ($1 != "id") print $1}'`
/usr/bin/mysql -u root realworx_production -e "update config_params set val='$val' where ident=55" 1>/dev/null 2>/dev/null
region_name=`/usr/bin/mysql -u root realworx_production -e "select name from regions where ip='$region_ip'" | awk '{if ($1 != "name") print $1}'`
echo "IP already exists. So set '$region_name' as Admin Region. "
fi
echo "Region Setting Successfull."
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值