企业需求一:统计访问最多的IP
企业场景
公司网站访问速度变慢。
领导要求:
"找出今天访问网站次数最多的IP,看是不是有人恶意访问。"
日志文件:access.log
运维要做的企业要求
统计:
访问次数 IP
按照次数从高到低排序。
注意:日志文件已经有
cut -d " " -f1 access.log
将access.log以空格为分隔符进行分段,取第一段
sort
先正序排序以便于后面去重(uniq只去除临近重复)
uniq -c
去重并统计次数
short -rn
以数字数值排序,并倒序排序
企业需求二:查找登录失败用户
企业场景
凌晨服务器疑似被暴力破解。
安全部门要求:查看所有登录失败记录。
日志:secure
1) 要求找出"Failed"相关日志。
2) 进一步要求 只统计失败次数
企业需求三:查找成功登录用户
企业场景
老板:今天有哪些员工成功登录服务器?查看日志 Accepted password
1)要求 滤Accepted
2)升级 提取用户名
举例:
Accepted password for root Accepted password for tom Accepted password for admincut -d " " -f6,7,8,9
以空格为通配符,输出第6789块
sort -u
排序并去重
企业需求四:整理员工名单
企业场景
内容:HR导出员工名单。然后内容十分混乱。
Tom Alice Jack Bob Alice Tom1)老板要求 按字母排序。
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/bash1)要求输出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.201)老板要求只保留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.txtwindows.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@1231)要求检查必须包含数字。
2)检查包含大小写
3)包含特殊字符
企业需求十:查找配置文件中的IP
配置
server=192.168.10.20 server=10.1.1.21)要求找出所有IP。
企业需求十一:查找邮箱
员工信息
tom@test.com abc@qq.com hello@gmail.com1)要求找出邮箱。
企业需求十二:过滤注释
配置文件
# nginx 或者apache listen 80; # php1)要求去掉#以及空行。
企业需求十三:统计访问最多的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 /login1)要求统计访问最多页面。
企业需求十四:筛选错误日志
日志
INFO WARN ERROR INFO ERROR1)老板要求只看错误。
2)统计数量
企业需求十五:检查在线服务器
CMDB导出的服务器列表
web01 web02 web01 db01 db01要求:
- 去除重复服务器。
- 按名称排序。
- 去除重复服务器并按名称排序
- 统计每台服务器出现次数。