码迷,mamicode.com
首页 > 其他好文 > 详细

脚本学习 game.sh

时间:2017-08-05 17:58:03      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:cut   from   输入   proc   ssi   sel   exec   awk   time   

#!/bin/bash
#game_error.sh

if [[ $# -lt 1 ]]; then    #$#表示参数个数 -lt小于
    echo "Usage: game_error.sh time[20170710]"
    exit
fi

source ./remote_cmd.sh #相当于include

MYSQL_MFW="/usr/local/mysql/bin/mysql -h10.84.248.207 -ulogstat -plogstat123 -Ddb_mfw -N" #-D:指定连接的数据库 -N:--skip-column-names 
dump_date=$1 #第一个参数

tmp_fifofile="/tmp/$$.fifo" #$$:Shell本身的PID(ProcessID)  
mkfifo $tmp_fifofile #创建fifo文件
exec 6<>$tmp_fifofile #关联FIFO文件和fd6
rm -f $tmp_fifofile #将fd6指向fifo类型
thread=20
for ((i=0;i<$thread;i++));do
echo
done >&6 #向fd6输入20个回车

dst_dir=/data/game_error
if [ ! -d "$dst_dir" ]
then
    mkdir -p $dst_dir
fi

rm  ${dst_dir}/*

${MYSQL_MFW} -e "select division,node from t_service where app=‘MOBA‘ and server=‘GameServer‘;" | while read line #-e:执行 循环读到line里面
do
    read -u6 #从6号fd中读取
    {
    zone_id=`echo $line |awk ‘{print $1}‘ |cut -d‘.‘ -f3` #$1:moba.zone.10 zone_id:10
    zone_ip=`echo $line |awk ‘{print $2}‘`        #$2:192.168.40.220    zone_ip:192.168.40.220
    source_dir="/data/applog/MOBA/moba.zone.${zone_id}/GameServer/MOBA.GameServer_error_${dump_date}.log"
    getfile mulong@${zone_ip} ${source_dir} ${dst_dir}/MOBA.GameServer_error_${dump_date}_${zone_id}.log #scp
    echo >&6
    }&
done

sleep 5
exec 6>&-
# -F"|" 以|分割  第6列不为空 -r降序 
cat ${dst_dir}/MOBA.GameServer_error_*.log|grep GameServer|awk -F"|" ‘{if($6!="") a[$6]++}END{for (i in a) printf("%-8s %s\n", a[i],i)}‘|sort -r -n -k1 > error_g_${dump_date}.txt
cat error_g_${dump_date}.txt
echo "success"

 

脚本学习 game.sh

标签:cut   from   输入   proc   ssi   sel   exec   awk   time   

原文地址:http://www.cnblogs.com/zzyoucan/p/7290730.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!