awk来调用linux命令解决个日志采集问题
来源:互联网 发布:企业数据安全管理 编辑:程序博客网 时间:2024/06/03 04:36
背景
做了个web页面的日志查询工具,给用服同事使用,以应对服务器太多的困扰,需要将现网日志拿回来家里进行模拟。
问题
部件A有10台主机,将某小时内文件压缩为A_IP.tar.gz。每个tar.gz包解压后为201405291200.tar.gz这种包含具体日志文件的压缩包。问题是如A部件10台主机到本地后两台服务器上,解压总会有同名文件,简单重命名分钟是没法解决(最后的C++模块按照分钟取了压缩包的.前面的12位),因为压缩包2分钟一个(这个日志量是大了点啊)于是决定重命名解压后文件,将A_IP.tar.gz解压后将201405291200.IP.tar.gz形式。
解决
决定脚本实现,IP通过参数形式传递
#!/bin/bash#解压日志压缩包,重命名加上.ip格式tar xvf *$1.tar.gzls 2014* |cat | awk -F "." '{ print "'${1}'" suffix=".tar.gz" filename=$1suffix newfilename=$1".""'$1'"suffix print newfilename system("mv "filename" "newfilename)}'
需要注意的是:
1.awk调用linux命令使用类似C语言的system调用方式
2.system中,如果没有变量传递,直接system("touch hello.txt")即可,如果hello.txt是awk传递过去的如
awk '{filename="hello.txt"...}'
在system里就不用双引号括起来了,使用system("touch " filename),注意touch后留个空格,filename不用加$
3.awk要使用shell传过来的参数,如上,执行./hello.sh 89时,89作为$1传递过来 ,以" '$1' "存在
0 0
- awk来调用linux命令解决个日志采集问题
- Linux---一些实例来讲解awk命令
- awk调用shell命令
- 解决ssh远程执行命令无法使用awk的问题
- 解决ssh远程执行命令无法使用awk的问题
- 两次调用encodeURI来解决乱码问题
- 两次调用encodeURI来解决乱码问题
- linux awk 命令应用
- linux命令之awk
- Linux awk命令详解
- Linux awk命令详解
- linux shell awk 命令
- linux awk 命令应用
- Linux awk命令详解
- Linux awk命令详解
- Linux awk命令详解
- Linux awk命令详解
- Linux awk 命令
- linux线程同步
- oj继承与组合
- 算法基础第一篇:选择算法
- 处理URL传递中文乱码问题
- 在SQL Server Management Studio中使用手动提交更改
- awk来调用linux命令解决个日志采集问题
- Cocos2d-x学习笔记(7)
- 关于ext touch的安装与打包
- 03_02.块元素与内联元素
- TOJ 1631 Naptime -- 环形DP
- Android Drawable Resource学习(一)、Drawable Resource简介
- Android基础--BroadcastReceiver应用详解
- 使用java采集京东商城行政区划数据示例
- 阿里巴巴DBA笔试题