awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大,下文我们就来介绍查询远程服务器内存以及awk使用吧.
使用方法:awk '{pattern + action}' {filenames}
调用awk,有三种方式调用awk.
1.命令行方式
awk [-F field-separator] 'commands' input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可选的,input-file(s) 是待处理的文件,在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域,通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格.
2.shell脚本方式
将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用,相当于shell脚本首行的:#!/bin/sh,可以换成:#!/bin/awk
3.将所有的awk命令插入一个单独文件,然后调用:
awk -f awk-script-file input-file(s)
其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的.
查询远程服务器存储详细信息:ssh 192.168.1.101 'free -g'
查询远程服务器内存,打印出第3行第4列的内容:
ssh 192.168.1.101 'free -g' | awk 'NR==3{print $4}'
定时结束进程(本例5秒后结束):& { sleep 5; eval 'kill -9 $!';}
查询远程服务器内存,打印出第3行第4列的内容,不管连接远程成功与否都会,5秒后结束.
ssh 192.168.1.101 'free -g'| awk 'NR==3{print $4}' & { sleep 5; eval 'kill -9 --phpfensi.com
无法使用awk命令
使用ssh远程执行命令,当使用到awk时总是报错,而sed和grep都没有问题,开始以为awk不支持远程执行,经过反复测试,找到了解决方法.
举例:ssh 目标IP “awk ‘{print \$1}’文件名”
说明:只要保证ssh使用的是“”,并且awk中的$加上转义即可.
这个恼人的awk的问题,顺利解决了.