day 19 2019-04-22

Awk下部

运维主要工作内容

核心三个:

  1. 数据不能丢
  2. 网站7*24小时运行
  3. 提升用户体验
    实际具体职责:

监控:

  1. 查看网站监控 网站状态 网站流量(带宽)
  2. 根据监控提示(邮件 微信 电话)进行处理

备份:

  1. 备份的内容(配置 数据 脚本 网站程序代码)检查备份是否能用。
    代码更新:代码上线
  2. 进行代码上线,代码回滚(老大)

其他项目

  1. 根据需求做一些项目(备份 优化 监控)
  2. 额外要求及自我学习

Awk命令额外用法:

一:首先创建本次环境

第一列为姓氏

第二列是名字

第一第二列合起来就是姓名

第三列是对应的ID号码

最后三列是三次捐款数量

[root@oldboyedu59 /oldboy]# cat /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@oldboyedu59 /oldboy]# awk '/' /server/files/reg.txt

Wu Waiwai 70271111 :250:80:75

Wang Xiaoai 3515064655 :50:95:135

Lao Nanhai 918391635 :250:100:175

(1)第二列中以字母i结尾的行:

[root@apple /server/files]# awk '$2~/i$/' reg.txt 第二列以i结尾的行
Wu Waiwai 70271111 :250:80:75
Wang Xiaoai 3515064655 :50:95:135
Lao Nanhai 918391635 :250:100:175
[root@apple /server/files]# awk '$2~/i$/{print $1,$2,$3}' reg.txt 取出1列2列3列
Wu Waiwai 70271111
Wang Xiaoai 351506465
Lao Nanhai 918391635

(2)姓氏是Zhang的人,显示他的第二次捐款金额以及她的名字

[root@apple /server/files]# awk '$1~/^Zh/{print $1,$2,$3,$4,$5}' reg.txt
Zhang Dandan 41117397 :250:100:17 这一列中以…开头的
Zhang Xiaoyu 390320151 :155:90:201
[root@apple /server/files]# awk '/^Zh/{print $1,$2,$3,$4,$5}' reg.txt
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201 这一行中以…开头
[root@apple /server/files]# awk -F'[ :]+' '$1~/^Zh/{print $1,$2,$5}' reg.txt
Zhang Dandan 100
Zhang Xiaoyu 90
倒数第一列 $NF 倒数第二列 $(NF-1)
[root@apple /server/files]# awk -F'[ :]+' '$1~/^Zh/{print $1,$2,$(NF-1)}' reg.txt
Zhang Dandan 100
Zhang Xiaoyu 90

(3)显示所有ID号码最后一位数字是1或5的人的全名

[root@apple /server/files]# awk '$3~/1$|5$/{print $1,$2}' reg.txt
Zhang Xiaoyu
Wu Waiwai
Wang Xiaoai
Li Youjiu
Lao Nanhai
[root@apple /server/files]# awk '$3~/[15]$/{print $1,$2}' reg.txt
Zhang Xiaoyu
Wu Waiwai
Wang Xiaoai
Li Youjiu
Lao Nanhai

(4)显示所有人的全名,以姓,名的格式显示

[root@apple /server/files]# awk '{print $1","$2}' reg.txt
Zhang,Dandan
Zhang,Xiaoyu
Meng,Feixue
Wu,Waiwai
Liu,Bingbing
Wang,Xiaoai
Zi,Gege
Li,Youjiu
Lao,Nanhai

(5)显示xiaoyu的捐款,每个值都有一$开头

[root@apple /server/files]# awk '$2~/^Xi/{print $NF}' reg.txt|tr ":" "$"

$155$90$201

$50$95$135

[root@apple /server/files]# awk '$2~/^Xi/{gsub(/:/,"$",$4);print $4}' reg.txt

$155$90$201

$50$95$135
day 19 2019-04-22_第1张图片
image.png
 [root@apple /server/files]# awk '{gsub(/:/,"*" ,$NF); print $4}' 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@apple /server/files]# awk '{gsub(/:/,"$"); print $0}' 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

二:创建环境head/etc/paawd>/apple/passwd.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

(1)将文件中第一行挪动到最后一行

awk的用法

[root@apple /server/files]# awk -F: '{tmp=$1;$1=$NF;$NF=tmp;print $0}' apple.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
/sbin/nologin x 12 100 games /usr/games games
/sbin/nologin x 14 50 FTP User /var/ftp ftp
/sbin/nologin x 99 99 Nobody / nobody
/sbin/nologin x 192 192 systemd Network Management / systemd-network
/sbin/nologin x 81 81 System message bus / dbus
/sbin/nologin x 999 998 User for polkitd / polkitd
/sbin/nologin x 59 59 Account used by the trousers package to sandbox the tcsd daemon /dev/null tss
/sbin/nologin x 173 173 /etc/abrt abrt
/sbin/nologin x 74 74 Privilege-separated SSH /var/empty/sshd sshd
/sbin/nologin x 89 89 /var/spool/postfix postfix
/sbin/nologin x 998 996 /var/lib/chrony chrony
/sbin/nologin x 38 38 /etc/ntp ntp
/bin/bash x 1000 1000 /home/apple apple
/bin/bash x 1001 1001 /home/orange orange

sed的用法

[root@apple /server/files]# sed -r 's#(^.*)(:x.*)(.*$)#\3\2\1#g' /apple/passwd.txt
:x:0:0:root:/root:/bin/bashroot
:x:1:1:bin:/bin:/sbin/nologinbin
:x:2:2:daemon:/sbin:/sbin/nologindaemon
:x:3:4:adm:/var/adm:/sbin/nologinadm
:x:4:7:lp:/var/spool/lpd:/sbin/nologinlp
:x:5:0:sync:/sbin:/bin/syncsync
:x:6:0:shutdown:/sbin:/sbin/shutdownshutdown
:x:7:0:halt:/sbin:/sbin/halthalt
:x:8:12:mail:/var/spool/mail:/sbin/nologinmail
:x:11:0:operator:/root:/sbin/nologinoperator

OFS进行替换

image.png
[root@apple /server/files]# awk -F: -vOFS=":" '{tmp=$1;$1=$NF;$NF=tmp;print $0}' apple.txt

awk计算的用法

day 19 2019-04-22_第2张图片
image.png

Bc Linux下的计算器

awk比较大小

找出/etc/passwd第三列中大于999的行

awk -F":" '$3>999' /etc/passwd

你可能感兴趣的:(day 19 2019-04-22)