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 --Vevb.com
無法使用awk命令
使用ssh遠程執行命令,當使用到awk時總是報錯,而sed和grep都沒有問題,開始以為awk不支持遠程執行,經過反復測試,找到了解決方法.
舉例:ssh 目標IP “awk ‘{print \$1}’文件名”
說明:只要保證ssh使用的是“”,并且awk中的$加上轉義即可.
這個惱人的awk的問題,順利解決了.
新聞熱點
疑難解答