linux中查询远程服务器内存以及awk使用

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的问题,顺利解决了.