企业需求一:统计访问最多的IP
企业场景
公司网站访问速度变慢。
领导要求:
"找出今天访问网站次数最多的IP,看是不是有人恶意访问。"
日志文件:access.log
运维要做的企业要求
统计:
访问次数 IP
按照次数从高到低排序。
注意:日志文件已经有

cut -d " " -f1 access.log
将access.log以空格为分隔符进行分段,取第一段
sort
先正序排序以便于后面去重(uniq只去除临近重复)
uniq -c
去重并统计次数
short -rn
以数字数值排序,并倒序排序
企业需求二:查找登录失败用户
企业场景
凌晨服务器疑似被暴力破解。
安全部门要求:查看所有登录失败记录。
日志:secure
- 要求找出"Failed"相关日志。

- 进一步要求 只统计失败次数

企业需求三:查找成功登录用户
企业场景
老板:今天有哪些员工成功登录服务器?查看日志 Accepted password
1)要求 滤Accepted

2)升级 提取用户名
举例:
Accepted password for root
Accepted password for tom
Accepted password for admin

cut -d " " -f6,7,8,9
以空格为通配符,输出第6789块
sort -u
排序并去重
企业需求四:整理员工名单
企业场景
内容:HR导出员工名单。然后内容十分混乱。
Tom
Alice
Jack
Bob
Alice
Tom
1)老板要求 按字母排序。
2)要求2 倒序
sort默认可以按字母排序,sort -r为倒序输出

企业需求五:去掉重复员工
企业场景
HR合并多个Excel。出现大量重复姓名。
1)要求 删除重复。
2)要求统计人数

sort -ur people.txt
将文件中的员工倒序输出并去重
wc -l
按行统计,输出几行
企业需求六:提取用户UID
企业场景
领导:把所有用户名列出来。(文件/etc/passwd)
例如:
root:x:0:0:root:/root:/bin/bash
1)要求输出root

sed -n {1p} /etc/passwd
打印输出/etc/passwd的第一行
2)进一步输出用户名 UID

cut -d ":" -f1,3 /etc/passwd
-d以:为分隔符,划分区块,-f1,3取第一块(用户名)和第三块(UID),作用于/etc/passwd
企业需求七:整理服务器IP
服务器清单
web01 192.168.10.10
web02 192.168.10.11
db01 192.168.10.20
1)老板要求只保留IP。


sed -i 输入,修改fwq.txt
's/^.* //'操作语句:使用替换,将以任意个.开头结尾是空格的字符串
^xxx 以xxx开头的字符串
.(小数点) 任意一个字符
* 前面的重复0或多次(任意次)
*后的空格 一个准确的结尾条件,前几项加起来就是第一个空格(含空格)之前的字符串
// 里面没东西,为空,把有的东西替换为空就是删除
企业需求八:批量替换配置
企业场景
开发提供Windows配置文件。里面全部都是 ^M Linux无法识别。
1)要求删除回车。
制作文件:
printf "server=192.168.10.10\r
port=3306\r
user=root\r
password=123456\r
name=ZHANGSAN\r
name=MIAOZIYI\r
name=FANGMENGHAO\r
" > windows.txt
windows.txt
server=192.168.10.10^M$
port=3306^M$
user=ROOT^M$
password=123456^M$
name=ZHANGSAN^M$
name=MIAOZIYI^M$
name=FANGMENGHAO^M$
生成文件:
、

输出结果: 
cat windows.txt
打开该文件
tr -d "\r">windows_2.txt
前面cat打开的数据给它操作,tr -d删除"\r",并把删除后的结果输入给新文件
2)另一种全部改成小写
linux.txt
AAAAAAAAA
BBBBBBBBB
CCCCCCCCC
生成文件:

执行操作:

tr 'A-Z' 'a-z'
把前面内容的大小字母转换成小写字母
企业需求九:密码规范检查(grep 正则)
员工密码文件
123456
admin123
Admin@123
1)要求检查必须包含数字。 
2)检查包含大小写

3)包含特殊字符

企业需求十:查找配置文件中的IP
配置
server=192.168.10.20
server=10.1.1.2
1)要求找出所有IP。

企业需求十一:查找邮箱
员工信息
tom@test.com
abc@qq.com
hello@gmail.com
1)要求找出邮箱。

企业需求十二:过滤注释
配置文件
# nginx 或者apache
listen 80;
# php
1)要求去掉#以及空行。

企业需求十三:统计访问最多的URL
日志
192.168.1.1 GET /index.html
192.168.1.2 GET /login
192.168.1.3 GET /login
192.168.1.4 GET /login
1)要求统计访问最多页面。

企业需求十四:筛选错误日志
日志
INFO
WARN
ERROR
INFO
ERROR
1)老板要求只看错误。

2)统计数量

企业需求十五:检查在线服务器
CMDB导出的服务器列表
web01
web02
web01
db01
db01
要求:
- 去除重复服务器。
- 按名称排序。
- 去除重复服务器并按名称排序

- 统计每台服务器出现次数。
