<meta charset="utf-8">
運維主要工作內(nèi)容
1.數(shù)據(jù)不丟失
2.網(wǎng)站7*24小時運行
3.提升用戶體驗
實際具體職責(zé)
1.查看網(wǎng)站監(jiān)控 網(wǎng)站狀態(tài) 網(wǎng)站流量(帶寬)
2.根據(jù)監(jiān)控提示(郵件 微信 電話)進(jìn)行處理
3.備份內(nèi)容(配置 數(shù)據(jù) 腳本 網(wǎng)站程序代碼) 和檢查備份是否內(nèi)容
代碼更新:代碼上線
4.進(jìn)行代碼上線 代碼回滾
5.根據(jù)需求做項目 備份 優(yōu)化 監(jiān)控
6.額外要求及自我學(xué)習(xí)
awk(下)
搭建環(huán)境:
mkdir -p /server/files/
cat >>/server/files/reg.txt<<EOF
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175
EOF
awk的內(nèi)置變量
NR 行 NR==2
[root@oldboy /oldboy]# awk 'NR==2' /server/files/reg.txt Zhang Xiaoyu 390320151 :155:90:201 [root@guanggege /oldboy]#
NF 最后一列 (倒數(shù)第二行為NF-1)
[root@oldboy /oldboy]# awk '{print $NF}' /server/files/reg.txt :250:100:175 :155:90:201 :250:60:50 :250:80:75 :250:100:175 :50:95:135 :250:168:200 :175:75:300 :250:100:175
2 某一列
[root@oldboy /oldboy]# awk '{print $1}' /server/files/reg.txt Zhang Zhang Meng Wu Liu Wang Zi Li Lao [root@guanggege /oldboy]#
$0 一整行
[root@oldboy /oldboy]# awk '{print $0}' /server/files/reg.txt Zhang Dandan 41117397 :250:100:175 Zhang Xiaoyu 390320151 :155:90:201 Meng Feixue 80042789 :250:60:50 Wu Waiwai 70271111 :250:80:75 Liu Bingbing 41117483 :250:100:175 Wang Xiaoai 3515064655 :50:95:135 Zi Gege 1986787350 :250:168:200 Li Youjiu 918391635 :175:75:300 Lao Nanhai 918391635 :250:100:175 [root@guanggege /oldboy]#
FS -F 修改的內(nèi)容 指定分隔符
[root@oldboy /oldboy]# awk -F '[ :]+' '{print $4,$5,$6}' /server/files/reg.txt 250 100 175 155 90 201 250 60 50 250 80 75 250 100 175 50 95 135 250 168 200 175 75 300 250 100 175 [root@guanggege /oldboy]#
OFS awk在輸出每一列的時候叨粘,每一列之間通過什么分割
例:-vOFS=” ” OFS的內(nèi)容就是,的內(nèi)容
[root@oldboy /oldboy]# awk -F '[: ]+' -vOFS=$ '{print $4,$5,$6}' /server/files/reg.txt $250$100$175 $155$90$201 $250$60$50 $250$80$75 $250$100$175 $50$95$135 $250$168$200 $175$75$300 $250$100$175
awk支持的條件
比較:
大于
<小于
=大于等于
<=小于等于
== 等于
!= 不等于
例:’$3>999’ 第三列中大于999的行
[root@oldboy /oldboy]# awk -F: '$3>999' /etc/passwd oldboy:x:1000:1000::/home/oldboy:/bin/bash [root@guanggege /oldboy]#
正則:
^ 開頭
$ 結(jié)尾
另外: ‘$2~/oldboy/’ 第2列中包含oldboy的行
‘$2!~/oldboy/’ 第2列中不包含oldboy的行
[root@oldboy /oldboy]# awk '$3~/oldboy/{print$0}' /oldboy/oldboy.txt I am oldboy teacher! [root@guanggege /oldboy]#
范圍
awk ‘NR==1,NR==5’
相當(dāng)于sed –n ‘1,5p’ 第一行到第五行
[root@oldboy /oldboy]# awk 'NR==1,NR==5' /server/files/reg.txt Zhang Dandan 41117397 :250:100:175 Zhang Xiaoyu 390320151 :155:90:201 Meng Feixue 80042789 :250:60:50 Wu Waiwai 70271111 :250:80:75 Liu Bingbing 41117483 :250:100:175 [root@guanggege /oldboy]#
awk ‘/2/,/8/’
相當(dāng)于sed –n ‘/2/,/8/p’ 顯示兩個條件之間的行
awk ‘4/8/’
相當(dāng)于 sed -rn '/[2-8]/p' 顯示包含這個范圍中內(nèi)容的行
[root@oldboy /oldboy]# awk '$1~/2/,$1~/8/' /oldboy/daodan.txt 2 3 4 5 6 7 8 12 13 14 15 [root@guanggege /oldboy]#
特殊
BEGIN{}:BEGIN{}里面的內(nèi)容會在awk讀取文件之前運行
例:awk ‘BEGIN{print 1/3,2*4,2^10} 測試時使用搔谴,用于計算
[root@oldboy /oldboy]# awk 'BEGIN{print 1/3,2*4,2^10}' 0.333333 8 1024 [root@oldboy /oldboy]#
END{}: END{}里面的內(nèi)容會在awk讀取文件之后運行
例:awk ‘/^$/{i=i+1;print i}’ 統(tǒng)計空白行味赃,顯示計算結(jié)果
[root@oldboy /oldboy]# awk '/^$/{i=i+1}END{print i}' /etc/services 17
[root@oldboy /oldboy]#
計算:
i=i+1或i++ 計算一共出現(xiàn)了多少次 (計數(shù))
i=i+$1 計算總和州丹,累加
例如:
awk '/{i=i++}END{print i} 計數(shù)
[root@oldboy /oldboy]# awk '$9==200{i++}END{print i}' access.log 142666 [root@oldboy /oldboy]#
awk '/{i=i+$9}END{print i} 求和
[root@oldboy /oldboy]# awk '$9~/^200$/{i=i+$9}END{print i}' access.log 28533200
[root@oldboy /oldboy]#
替換和調(diào)換
替換:
gsub (/:/,”$”)
gsub (/找誰/,”替換成什么”,某一列)
[root@oldboy /oldboy]# awk '{gsub(/:/,"$",$NF); print $4 }' /server/files/reg.txt $250$100$175 $155$90$201 $250$60$50 $250$80$75 $250$100$175 $50$95$135 $250$168$200 $175$75$300 $250$100$175
調(diào)換:
awk -F: '{tmp=1=
NF=tmp;print $0}' 第一列和最后一列調(diào)換
[root@oldboy /oldboy]# awk -F: '{tmp=$1;$1=$NF;$NF=tmp;print $0 }' passwd.txt /bin/bash x 0 0 root /root root /sbin/nologin x 1 1 bin /bin bin /sbin/nologin x 2 2 daemon /sbin daemon /sbin/nologin x 3 4 adm /var/adm adm /sbin/nologin x 4 7 lp /var/spool/lpd lp /bin/sync x 5 0 sync /sbin sync /sbin/shutdown x 6 0 shutdown /sbin shutdown /sbin/halt x 7 0 halt /sbin halt /sbin/nologin x 8 12 mail /var/spool/mail mail /sbin/nologin x 11 0 operator /root operator
[root@oldboy /oldboy]#