shell指令碼以及awk學習

2021-10-19 12:15:28 字數 3944 閱讀 8223

awk '/^$/' filename
awk

'end' filename

if

[ -e /root/temp]

;then

echo

"yes"

;*else* echo

"no"

;fi

sort -n filename
grep -r "123" /root/temp
temp_txt=

`mktemp tempx.***`

cat /dev/urandom | strings -6|

grep

"^[a-za-z0-9]$"

|head -n 20 >

$temp_txt

for(i=1;i<=10;i++)

do name=

`head -n $i $temp_txt |

tail -1`

[! -d ./temp]

&&mkdir -p ./temp

touch

"./temp/$name"

done

filenames=

$(ls /root/temp)

number=1

for name in filenames

do newname=

$"-"

$rename

$$ /root/temp/*

*let number++*

*done*

ulist=

$(cat /root/temp)

for name in ulist

do *useradd $name*

*echo "123456"

|passwd --stdin $name

&> dev/null*

*done*

echo

"dhfsdpads dfsd,dasdfd."

|awk -f "[ ,.]"

'}'

*awk -f "[ ,.]"

'}}end' filename |

sort -rn*

*for i in 192.168.85.*

*do*

​ *recieve=$(ping $i -c 2 | awk 'nr==6')*

​ *if [$recieve -gt 0]*

​ *echo "yes"*

*done*

監控目標主機狀態,監控方法ping

ping通的話,host up。否則,host down

ping的取值的話,我們就選3次,每次1秒。

#!/bin/bash

#mian

for((i=

1;i<

4;i++));

doif

ping -c1 $1

&>/dev/null;

then

export ping_count"$i"

=1 else

export ping_count"$i"

=0 fi

sleep 1

doneif[

"$ping_count1" -eq "$ping_count2"]&&

["$ping_count1" -eq "$ping_count3"]&&

["$ping_count2" -eq 0 ]

;then

echo

"$1 is down"

else

echo

"$1 is up"

fiunset ping_count1

unset ping_count2

unset ping_count3

用ssh連線虛擬機器進行測試,測試結果順利。

虛擬機器ip為 172.16.138.128。echo成功

瞎編乙個ip為172.16.138.120 . echo失敗

測試埠是不是有響應

用telnet 協議

buffer和cache介紹cache(快取),為了調高cpu和記憶體之間資料交換而設計,buffer(緩衝)為了提高記憶體和硬碟(或其他i/o裝置的資料交換而設計)。

cache主要是針對讀操作設計的,不過cache概念可能容易混淆,我理解為cpu本身就有cache,包括一級快取、二級快取、**快取,我們知道cpu所有的指令操作對接的都是記憶體,而cpu的處理能力遠高於記憶體速度,所以為了不讓cpu資源閒置,intel等公司在cpu內部整合了一些cache,但畢竟不能放太多電路在裡面,所以這部分cache並不是很大,主要是用來存放一些常用的指令和常用資料,真正大部分cache的資料應該是占用記憶體的空間來快取請求過的資料,即上面的cached部分(這部分純屬個人理解,正確與否有待考證)。

buffer主要是針對寫操作設計的,更細的說是針對記憶體和硬碟之間的寫操作來設計的,目的是將寫的操作集中起來進行,減少磁碟碎片和硬碟反覆定址過程,提高效能。在linux系統內部有乙個守護程序會定期清空buffer中的內容,將其寫入硬碟內,當手動執行sync命令時也會觸發上述操作。

meminfo指令,使用awk提取出所需要的資料,進行簡單的運算求出使用率

#記憶體申請順序 free-cache-buffer-swap

memory_use(

)nr==2'

` memory_cache=

`head -5 /proc/meminfo |

awk'nr==1nr==5'

` memory_buffer=

`head -4 /proc/meminfo |

awk'nr==1nr==4'

` echo

"memory_used: $memory_used"

echo

"memory_cached: $memory_cache"

echo

"memory_buffer: $menory_buffer"

}memory_use

#!/bin/bash

# 統計系統中前10使用記憶體最多的程序

memory(

)end'

|sort -k 1 -n -r|

head -10

rm -f $temp_file

}#統計系統中前10使用cpu的程序

cpu(

)end'

|sort -k 1 -n -r|

head -10

rm -f $temp_file

}echo

"記憶體前10"

memory

echo

"cpu前10"

shell指令碼之awk

一 什麼是awk awk其實相當於一門可以處理資料文字的語言,這麼說的原因是其具有很多類c語言的語法,如 變數,陣列,函式,流程控制等,其由aho,weinberger,kernighan大約在1977年開發完成,隨後被引入unix linux中。二 awk可以幹什麼 awk是乙個非常強大的資料處理...

shell指令碼 awk的用法

語法格式 awk 選項 指令 操作檔案 常用選項 f 指定分隔符,分隔符用 引起來 v var value在awk程式開始之前指定乙個值valu給變數var,這些變數值用於awk程式的begin快 f 後面跟乙個儲存了awk程式的檔案,代替在命令列指定awk程式 awk 1.txt 逐行讀取檔案1....

shell指令碼之awk 一

2.linux中常用的awk編譯器版本有mawk,gawk。redhat使用的是gawk,ubuntu使用的是mawk.1.逐行掃瞄檔案,尋找匹配你指定模式的行,並在這些行上執行你指定的操作 2.awk 基本結構包括模式匹配 用於找到要處理的行 和處理過程 即處理動作 3.awk 有兩個特殊的模式 ...