第一周 · 综合实战
第一周 · 综合实战
实战场景
你是运维新人,主管给你一台 Linux 机器,让你整理
/var/log/app/下的日志文件。
这个目录结构混乱,有重复文件、死软链接、日志文件散落各处。你需要完成以下任务。
任务一:摸清目录结构
在 /tmp 下先搭建模拟环境:
1 | mkdir -p /tmp/app-log/{archive,reports} |
完成后:
- 用
ls -lh查看当前目录所有文件(含隐藏) - 用
ls -l找出软链接app-latest.log,确认它指向谁 - 用
ls -lR递归查看整个目录树
任务二:日志内容分析
- 查看
app-latest.log的内容(通过软链接读取) - 统计所有
.log文件的总行数(一条命令) - 找出所有包含
ERROR的行,并统计共有多少条 ERROR(提示:grep ERROR *.log和grep ERROR *.log | wc -l;grep将在 Week 2 详细学习) - 统计每种错误类型(
disk failure/memory leak/timeout)各出现多少次(提示:需组合grep+awk提取错误描述后再sort | uniq -c;grep和awk将在 Week 2 正式学习,此处可先尝试照做) - 从所有日志中提取第 3 到第 6 行(提示:先合并,再截取)
任务三:整理目录
- 软件链接
app-latest.log指向的是app-2024-01-01.log——这可能是旧的,删除这个软链接 archive/下的文件是重复的,确认内容与源文件一致后删除整个archive/目录- 将
reports/summary.log移动到当前目录并改名为summary-2024-01.log - 删除空的
reports/目录 - 将当前目录所有
.log文件打包为logs-archive.tar(不用压缩,归档即可;提示:tar -cvf logs-archive.tar *.log,tar将在 Week 3 详细学习)
故障排查一
现象:你执行 cat app-2024-01-05.log 想查看日志,终端输出:
1 | cat: app-2024-01-05.log: No such file or directory |
你确定文件名拼写正确。
- 排查步骤是什么?(写出你要依次执行的命令)
- 可能的原因有哪些?(至少列出 2 个)
故障排查二
现象:执行 mkdir -p /tmp/app-log/archive 报错:
1 | mkdir: cannot create directory '/tmp/app-log/archive': File exists |
但 ls /tmp/app-log/archive 显示该路径存在且是文件不是目录。
- 为什么
-p参数没有忽略这个错误? - 怎么解决?(两条不同的思路)