運送と維持の職責及びawk

5123 ワード

運営・維持の主な仕事内容
1.データは失わない
2.ウェブサイトは7*24時間運行します。
3.ユーザー体験の向上
具体的な職責
1.ウェブサイト監視サイトの状態ウェブサイトの流量(帯域幅)を確認する。
2.監視メッセージ(メール・WeChat電話)に従って処理する
3.バックアップ内容(コンフィギュレーションデータスクリプトウェブサイトプログラムコード)とバックアップ内容の確認
コード更新:コードライン
4.コードのオンラインコードのロールバックを行う
5.必要に応じてプロジェクトのバックアップ最適化の監視を行う
6.追加要求及び自己学習awk(下)
設置環境:
mkdir -p /server/files/

cat >>/server/files/reg.txt<
awkの内蔵変数
NR行==2
[root@oldboy /oldboy]# awk 'NR==2' /server/files/reg.txt Zhang Xiaoyu 390320151 :155:90:201 [root@guanggege /oldboy]#
NFの最後の列(最後から二番目の行為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修正の内容指定セパレータ
[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の内容は、の内容です。
[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]#
正則:
^先頭
$末尾
また:'$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’
sed–n‘1,5 p’の1行目から5行目に相当します。
[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/'
sed–n'/2/,/8/p'に相当する2つの条件の間の行を表示します。
awk‘4/8/’
sed-rn'/[2-8]/p'に相当します。この範囲の内容を含む行を表示します。
[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{}の内容は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{}の内容はawkでファイルを読み込んでから実行します。
例:awk'/^/{i=i+1;print i}統計空欄行は計算結果を表示します。
[root@oldboy /oldboy]# awk '/^$/{i=i+1}END{print i}' /etc/services 17
[root@oldboy /oldboy]#
計算:
i=i+1またはi++の計算は全部で何回ありますか?
i=i+$1は合計、累積を計算します。
たとえば:
awk'/{i=i+}END{print i}カウント
[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]#
入れ替え?入れ換え
置換:
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
置き換え:
awk-F:'{tmp=1=NF=tmp;print$0''第一列と最後列は入れ替わります。
[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]#