脚本学习 game.sh

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了脚本学习 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 [email protected]${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的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本实战之坦克大战小游戏

代码片段:Shell脚本实现重复执行和多进程

JSP学习笔记:JSP语法和指令

30 段 Python 实用代码

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

;~ 小部分AutoHotkey源代码片段测试模板2019年10月9日.ahk