#!/bin/bash #ERROR 代码 #预定义 dir="/var/www/html/newchar/data/" dbconfig="./db.config" writeNewChar() { #计算日期时间相关 curd=`date +%F` #取得今天日期 pred=`date -d "$curd - 1 days" +%F` #取得昨天的日期 curs=`date -d "$curd" +%s` #取得今天0点的秒 pres=`date -d "$curd - 1 days" +%s` #取得昨天0点的秒 echo "$curd $pred $curs $pres" #检测文件是否已存在 fname="mhzc_$pred.txt" file="$dir$fname" if [ -e "$file" ] then #echo "File $file already exist." return fi #echo "No file $file" #执行操作 while read line do #读取所有服务器配置 line=($line) sid=${line[0]} ip=${line[1]} user=${line[2]} pass=${line[3]} echo "$sid $ip $user $pass" sql="select accname,charname,createtime,logintime from t_char where createtime > $pres and createtime < $curs" #sql="select accname,charname,createtime,logintime from t_char where aid>0 and aid<100 or aid=601 and createtime!=0 and logintime!=0" sqlresult=($(mysql -h$ip -u$user -p$pass -Darpg --default-character-set=utf8 -e "$sql")) #处理某一个服务器 i=1 while true do accname=${sqlresult[$i*4+0]} charname=${sqlresult[$i*4+1]} createtime=${sqlresult[$i*4+2]} logintime=${sqlresult[$i*4+3]} if [ -z $accname ] #-o -z $charname -o -z $createtime -o -z $logintime ] then break fi createtime=`date +%F" "%T -d @"$createtime"` logintime=`date +%F" "%T -d @"$logintime"` echo "$sid $accname $charname $createtime $logintime" >> "$file" i=$((i+1)) done done < "$dbconfig" } echo "start...." #循环定时执行 while true do hour=`date +%H` if [ $hour -gt 0 -a $hour -lt 6 ] then writeNewChar fi sleep 3h done echo "end..." exit 0 db.config 1 115.182.60.22 name password