脚本学习 game.sh
#!/bin/bash
#game_error.sh if [[ $# -lt ]]; 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=$ #第一个参数 tmp_fifofile="/tmp/$$.fifo" #$$:Shell本身的PID(ProcessID)
mkfifo $tmp_fifofile #创建fifo文件
exec <>$tmp_fifofile #关联FIFO文件和fd6
rm -f $tmp_fifofile #将fd6指向fifo类型
thread=
for ((i=;i<$thread;i++));do
echo
done >& #向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的更多相关文章
- sh脚本学习之: sh脚本 、sed、awk
sh脚本 sh命令的批处理文件,支持更复杂的逻辑. Shell中的变量 参数 $0 当前脚本路径 $1....$n 脚本执行对应的第n个参数 条件判断 文件判断 test [op] path e存在 ...
- 06- Shell脚本学习--其它
Shell输入输出重定向 Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示.一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器. 输出 ...
- 04- Shell脚本学习--条件控制和循环语句
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...
- 02- Shell脚本学习--运算符
Shell运算符 Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 算术运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 aw ...
- 01- Shell脚本学习--入门
简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说有多少 ...
- 转 shell脚本学习指南
shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...
- shell脚本学习-文件包含
跟着RUNOOB网站的教程学习的笔记 和其他语言一样,shell也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件.shell文件包含的语法有两种形式 . filename # ...
- shell 脚本学习
Shell简介 概述 Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令,并把它送入内核去执行.内核是Linux系统的心脏,从开机自检就驻留在计算机的内 ...
- shell脚本学习总结02--数组
bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...
随机推荐
- Eclipse JUnit简单示例
在本节中,我们将看到一个简单的JUnit例子. 先创建一个工程,名称为:CalculateTest,并在这个工程上点击右键,选择:Build Path -> Add Library -> ...
- James Whittaker的软件測试戒律(二)
摘录自<探索式软件測试>(注:作者模仿了圣经十诫的语气和内容编写了软件測试戒律) 1.汝应用大量输入重复锤炼汝之应用程序 2.汝应贪图汝之邻居的应用程序 3.汝应亲自寻找睿智的预言家 4. ...
- Spring集成线程池
自己在程序中手动New很容易造成线程滥用,创建线程也是比较消耗资源的操作,所以建议如果有此需求,将线程池统一交给Spring框架进行管理. 如下: <!--Spring 集成线程池,不允许自己开 ...
- MySQL删除数据库时的错误
From: http://blog.csdn.net/mydeman/article/details/6843398 由于在9月30号粗暴地打断了一个导入进程,今天发现MySQL竟然不能启动了,只好卸 ...
- CentOS 7 安装、配置、使用 PostgreSQL 10 安装及基础配置
官网安装方法:https://www.postgresql.org/download/linux/redhat/ 卸载的话使用 yum remove 相应的安装 Install the reposit ...
- HDU 3970 Harmonious Set 容斥欧拉函数
pid=3970">链接 题解:www.cygmasot.com/index.php/2015/08/17/hdu_3970 给定n 求连续整数[0,n), 中随意选一些数使得选出的 ...
- bind带autocomplete时,最好是从新的tr复制
(function($) { //自动关联ItemNo $.fn.extend({ productitemlist: function(options) { return this.each(func ...
- 【WP8】图片缓存控件
在做图片相关的应用的时候,经常需要用大图片的缓存,默认的Image控件不支持缓存的支持,本文自定义一个支持图片缓存的控件 当图片的地址是网络图片时候 根据Url判断该图片是否存在本地,如果存在,则直接 ...
- Oracle统计每条数据的大小
怎么查询一条记录到底占了多少空间呢,随便用一个表举例(如上图),就着解决眼前问题的原则(oracle),网上简单查了查,发现生效了,就没深入了解了,包括其它数据库怎么解决,都没做研究.Oracle下, ...
- js替换数组中的一个对象用for循环遍历
for(let i=0;i<statusList.length;i++){ if (statusList[i]['tableId'] === tableId) { statusList[i]=d ...