shell脚本应用
2016-07-05 17:54
417 查看
解析乱的日志文件到临时文件中,然后用awk
1004 cd /usr/local
1005 ll
1006 cd pttmsg/
1007 ll
1008 cd msgbin-2/
1009 ll
1010 cd proxy
1011 ll
1012 cd log
1013 ll
1014 tail -1000 proxy_sub0_20160107.log
1015 grep '===ret' proxy_sub0_20160107.log
1016 grep '===ret' proxy_sub0_20160107.log > test.log
1017 cat test.log
1018 grep '~time' proxy_sub0_20160107.log > test.log
1019 grep '~time' proxy_sub0_20160106.log > test.log
1020 tail -1000 proxy_sub0_20160107.log
1021 tail -1000 proxy_sub0_20160106.log
1022 grep '~time' proxy_sub0_20160106.log > test.log 先格式化整理文件到test.log
1023 cat test.log
1053 cat test.log | awk -F '<I>' '{print $2}'
1054 cat test.log | awk -F '<I>' '{print $2}' > ceshi.log 最后格式化整理为需要的文件
1055 cat ceshi.log
scp -r root@172.16.1.21:/usr/local/pttmsg/msgbin-2/proxy/log/proxy_sub0_`date '+%Y%m%d'`.log ./log/ 远程复制文件到当前服务器目录
-------------------------------
ssh_host="root@172.16.1.40"
remote_gfile="/usr/local/pttmsg/msgbin-3/groupcall/log/gcall_sub0_${yestime}.log"
#记录临时群聊时长到用户通话时长日志文件中
if ssh $ssh_host test -e $remote_gfile; #判断远程服务器是否有该文件
-----------------------------
#line='ssrc:875640674'
#cat $gnewfile | grep $line #筛选查找
#cat $gnewfile | awk '!x[$0]++' #去除文件中重复的数据
#cat $gnewfile | grep $line | head -1 #获取第一行数据
#cat $gnewfile | awk 'END {print}' #获取最后一行
#cat $gnewfile | awk -F ':' '{print $NF}' #获取每行的最后一个数据
sql="select count(*) as count from vec_pt_useractive where time='$tmptime';"
res=$(mysql -h${host} -p${port} -u${dbuser} -p${dbpsw} ${dbname} -e "${sql}") #接收查询的结果
res0=($res) #转化为数组
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?
幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符之后,就可以用-k来指定列数了
sort -n -k 2 -t : facebook.txt
1004 cd /usr/local
1005 ll
1006 cd pttmsg/
1007 ll
1008 cd msgbin-2/
1009 ll
1010 cd proxy
1011 ll
1012 cd log
1013 ll
1014 tail -1000 proxy_sub0_20160107.log
1015 grep '===ret' proxy_sub0_20160107.log
1016 grep '===ret' proxy_sub0_20160107.log > test.log
1017 cat test.log
1018 grep '~time' proxy_sub0_20160107.log > test.log
1019 grep '~time' proxy_sub0_20160106.log > test.log
1020 tail -1000 proxy_sub0_20160107.log
1021 tail -1000 proxy_sub0_20160106.log
1022 grep '~time' proxy_sub0_20160106.log > test.log 先格式化整理文件到test.log
1023 cat test.log
1053 cat test.log | awk -F '<I>' '{print $2}'
1054 cat test.log | awk -F '<I>' '{print $2}' > ceshi.log 最后格式化整理为需要的文件
1055 cat ceshi.log
scp -r root@172.16.1.21:/usr/local/pttmsg/msgbin-2/proxy/log/proxy_sub0_`date '+%Y%m%d'`.log ./log/ 远程复制文件到当前服务器目录
-------------------------------
ssh_host="root@172.16.1.40"
remote_gfile="/usr/local/pttmsg/msgbin-3/groupcall/log/gcall_sub0_${yestime}.log"
#记录临时群聊时长到用户通话时长日志文件中
if ssh $ssh_host test -e $remote_gfile; #判断远程服务器是否有该文件
-----------------------------
#line='ssrc:875640674'
#cat $gnewfile | grep $line #筛选查找
#cat $gnewfile | awk '!x[$0]++' #去除文件中重复的数据
#cat $gnewfile | grep $line | head -1 #获取第一行数据
#cat $gnewfile | awk 'END {print}' #获取最后一行
#cat $gnewfile | awk -F ':' '{print $NF}' #获取每行的最后一个数据
sql="select count(*) as count from vec_pt_useractive where time='$tmptime';"
res=$(mysql -h${host} -p${port} -u${dbuser} -p${dbpsw} ${dbname} -e "${sql}") #接收查询的结果
res0=($res) #转化为数组
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?
幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符之后,就可以用-k来指定列数了
sort -n -k 2 -t : facebook.txt
相关文章推荐
- shell脚本中的数值运算
- shell中利用自定义命令简化操作
- adb bash
- HBase 常用Shell命令
- Linux shell 常用知识点
- ActiveMQ 后台拿shell CVE-2016-3088 (价值3500刀) -- 2016-07-04 17:07
- Linux修改Shell命令提示符及颜色
- shell 导入csv到mysql
- ubuntu 创建新的用户和用户组 以及新用户无法使用bash的问题
- 树莓派IoT 学习2 shell搭建mqtt环境
- Shell脚本安装成服务加入系统启动-service XX does not support chkconfig
- Xshell 配置方案
- 根据一个域名取其根域
- shell编程——if语句 if -z -n -f -eq -ne -lt
- shell 编程
- shell stdin 变 参数
- shell 判断 404
- 通过shell脚本进行数据库操作
- Linuxshell脚本之蛋疼Sed简介正则表达式
- cocoapods之 Operation not permitted - /usr/bin/pod 和-bash: pod: command not found