发表于: 2016-03-10 02:22:10
2 894
第78天
今天完成的事情:
找到了统计班级满员发送邮件脚本不成功的原因,进行了修改,放到后台运行,用ps -ef 命令查看了这个脚本一直在运行。
之前的脚本是执行一次就结束了,而不是一直在执行,出现这个问题的原因是,return 0这句指令的使用。脚本的思路是通过判断200ms内班级的status值,若为 0则表名有班级没满,会一个空的返回值。若status为1,有则返回值为空。然后通过判断返回值是否为空来判断要不要发送邮件。本意是想若返回值为空的时候,则不执行任何操作(用了一个return 0),若非空就发送邮件。错在了return 0这个上面,改成echo 就好了。
正确的脚本:
#!/bin/dash
while :
do
a=`date +%s%N |cut -b 1-13`
b=200
c=$(($a-$b))
#return_value=$(mysql -hxdylxdyl.mysql.rds.aliyuncs.com -ujnshuskill -pjnshuskill skill -e "select oid from classes where status=1 and (update_at between '$c'and'$a' );")
echo "$return_value"
if [ "$return_value"="" ];then
echo
else
echo "班级已满,请增加班级。"|mail -s test 1692667299@qq.com
fi
sleep 0.2;
done
可以多加几个if语句来判断$return_value的具体值,从而能明确是哪个班级满了。
if [ "$return_value"="" ];then
echo
else
case $return_value in
1) echo "CSS班级已满,请增加班级。"|mail -s test 1692667299@qq.com
2)echo "JS班级已满,请增加班级。"|mail -s test 1692667299@qq.com
3) echo "IOS班级已满,请增加班级。"|mail -s test 1692667299@qq.com
4)echo "Andriod班级已满,请增加班级。"|mail -s test 1692667299@qq.comsleep 0.2;
5)echo "JAVA班级已满,请增加班级。"|mail -s test 1692667299@qq.comsleep 0.2;
6)echo "OP班级已满,请增加班级。"|mail -s test 1692667299@qq.comsleep 0.2;
7)echo "PM班级已满,请增加班级。"|mail -s test 1692667299@qq.comsleep 0.2;
8)echo "UI班级已满,请增加班级。"|mail -s test 1692667299@qq.comsleep 0.2;
fi
done
复习linux的基本的指令和操作,并在电脑上实际操作。
遇到的问题:读mysql的二进制日志没能成功,原因是没怎么看懂教程。
每天要去面试。
评论