• 脚本学习 game.sh


    #!/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
    ", a[i],i)}'|sort -r -n -k1 > error_g_${dump_date}.txt
    cat error_g_${dump_date}.txt
    echo "success"
  • 相关阅读:
    java-反射
    java-异常
    Jmeter-逻辑控制器
    Jmeter-断言
    java-函数传参
    怎么测试一个杯子
    java+selenium3-元素定位
    java+selenium3-简介及环境搭建
    微软企业库5.0 使用举例
    数据库连接字符串ConnectionString 中的关键字值释义
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/7290730.html
Copyright © 2020-2023  润新知