1、大纲
- 日志查看四剑客:cat/head/tail/more/less
- wc
- which/whereis
- diff/vimdiff
- 排序:sort,uniq
- 时间:date
- 打包压缩
2、日志查询4剑客
2.1 概述
查看日志不要使用,cat或vim,vi命令。未来的日志文件。有的日志可达:40G或以上
如果使用cat查看,会刷屏根本停不下来
如果使用vi/vim查看,从磁盘中加载到内存,占用系统内存,很容易导致系统内存不足.
linux查询日志 ,文件较大,通过cat,vi/vim进行查看,系统可能卡死,可能内存不足.。
推荐使用不会占用系统太多资源的命令,查看日志:head/tail/,less/more
故障案例:
2.2 日志查询命令
1)head 显示文件的头几行,默认是头10行
head -n 显示头n行的文本
#一般情况下,使用-数字即可.如果-5报错或无法使用,则使用-n5 形式.
2)tail 显示文件的后几行,默认是后10行
tail选项 | 说明 |
---|---|
-n | 显示最后n行文本 |
-f | follow显示文件末尾的实时更新(一般用于查看日志)等同于tailf |
#打开两个窗口
tail -f /var/log/secure
如何查看日志
看日志要抓住核心,关键,线索
这些线索一般都是:关键词错误提示:failed,failure,error…
例如在/var/log/secure查看,Faild passeord
3)less 按页显示文件内容
一页一页翻看文件内容,也可以进行搜索
less 选项与快捷方式 | 说明 |
---|---|
-N | 显示行号 |
q | 退出 |
空格 | 下一页 |
b | 上一页 |
G | 最后一行 |
99g | 到第99行 |
/内容 | 搜索内容。继续搜索n,向上搜索N |
4)more 按页显示文件内容,到达最后一行退出
more功能没有less多
5)小结
查看大文件:head/tail、more/less
大文件避免用vi/vim/cat查看
3、wc统计
用来统计文件中单词情况、大小、行数。未来工作中主要统计行数
-l | 统计行数 |
---|
#案例一 统计行数
wc /var/log/secure
116573 1519653 12124690 /var/log/secure
wc -l /var/log/secure
116578 /var/log/secure
#案例二 统计系统用户登录错误次数
grep "Failed password" /var/log/secure | wc -l
23053
4、查询命令位置
熟悉下面几个命令就好
which和whereis
[root@yunwei ~]# which ping cd reboot ls cd cat grep
alias grep='grep --color=auto'
/usr/bin/grep
alias ls='ls --color=auto'
/usr/bin/ls
/usr/bin/ping
/usr/bin/cd
/usr/sbin/reboot
/usr/bin/cd
/usr/bin/cat
[root@yunwei ~]# whereis ping cd reboot ls cd cat grep
ping: /usr/bin/ping /usr/share/man/man8/ping.8.gz
cd: /usr/bin/cd /usr/share/man/mann/cd.n.gz /usr/share/man/man1/cd.1.gz
reboot: /usr/sbin/reboot /usr/share/man/man8/reboot.8.gz
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
cd: /usr/bin/cd /usr/share/man/mann/cd.n.gz /usr/share/man/man1/cd.1.gz
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
grep: /usr/bin/grep /usr/share/man/man1/grep.1.gz
5、文件比较
未来在服务的配置中,我们需要对比下新旧的配置文件,查看修改了哪些内容。 这时候我们需要进行文件的对比操作,可以通过diff,vimdiff命令实现。
5.1 diff
[root@yunwei ~]# diff 1.txt 2.txt
3c3
< 123
---
> 133
# tip: a 增加 b修改 d删除
5.2 vimdiff
vimdiff 1.txt 2.txt
6、排序去重组合
未来生产环境,统计日志,日志分析,系统信息统计,毕业命令。
sort:排序
uniq:去重并统计计数
6.1 sort排序
sort选项 | 说明 |
---|---|
-n | 按照数字排序(默认由小到大) |
-r | 倒序排序(大到小) |
-k | 按照第几列排序 |
-t | 指定分隔符,只能指定1个字符. 默认是空格. |
#案例一 按照文件大小逆序排序
[root@yunwei /]# ll | sort -nrk5 | head -2
drwx------. 2 root root 16384 3月 7 2019 lost+found
drwxr-xr-x. 95 root root 12288 1月 24 13:02 etc
#案例二 按照分隔符逆序排序
[root@yunwei ~]# sort -nrk3 -t ':' /etc/passwd | head -3
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
#案例三 多列排序
[root@yunwei ~]# sort -nr -t '.' -k3 -k4 test.txt
192.168.3.3 00:0F:AF:85:70:42
192.168.3.2 00:0F:AF:85:70:25
192.168.3.12 00:30:15:A2:3A:A1
192.168.3.10 00:30:15:A2:3B:B6
192.168.2.25 00:0F:AF:85:5C:41
192.168.2.22 00:0F:AF:85:6C:25
192.168.2.21 00:0F:AF:81:19:1F
[root@yunwei ~]# sort -nr -t '.' -k3,3 -k4,4 test.txt
192.168.3.12 00:30:15:A2:3A:A1
192.168.3.10 00:30:15:A2:3B:B6
192.168.3.3 00:0F:AF:85:70:42
192.168.3.2 00:0F:AF:85:70:25
192.168.2.25 00:0F:AF:85:5C:41
192.168.2.22 00:0F:AF:85:6C:25
192.168.2.21 00:0F:AF:81:19:1F
# -k3,3 表示仅对第3列排序 -k4,4 表示仅对第4列排序
6.2 uniq
unique独一无二
Tip:安装 rz上传 & sz下载
yum install -y lrzsz
uniq *.txt
前后行相同的唯一
-c 去重并显示次数(重复次数)
uniq只能对相邻的行进行合并(去重),如果不相邻,需要通过sort命令调整为相邻的.
案例一 统计secure-ip.txt文件中每个ip出现的次数并取出前5。
1.通过sort处理下
2.去重uniq -c
3.sort对次数进行排序
4.head取出5
sort secure-ip.txt | uniq -c | sort -nr | head -5
7、日期组合
在Linux中我们需要日常查看系统的时间,保证整个网站所有服务 器的系统时间一致的.
未来在运维的日常操作中,书写脚本的时候也需要使用时间,比如 创建以当前日期命名的文件
7.1 date
设置或查看系统的日期,时间命令 未来主要用于查看日期或去日期
date选项 | |
---|---|
+ | 以时间格式显示日期与时间 |
%F 年-月-日 %Y-%m-%d | |
%w 周几 | |
+%T %H:%M:%S 时:分:秒 | |
-d | 根据说明修改时间 |
-s | 修改时间 |
ntpdate ntp1.aliyun.com | 同步时间 |
#案例一 修改时区
[root@yunwei ~]# timedatectl status
Local time: 三 2024-01-24 22:56:12 CST
Universal time: 三 2024-01-24 14:56:12 UTC
RTC time: 三 2024-01-24 14:56:11
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
[root@yunwei~]# timedatectl set-timezone Asia/Shanghai
7.2 应用实战
date应用场景:企业备份的时候,给压缩包加上时间 创建文件或目录,给文件名或目录名字加上个时间。 被特殊符号: ``,反引号里面的命令会被优先执行
#案例一 ``反引号里面的命令会被优先执行
[root@yunwei ~]# ll `which find`
-rwxr-xr-x. 1 root root 199304 10月 31 2018 /usr/bin/find
#案例二 创建 backup-etc-今天的年-月-日.txt
[root@yunwei ~]# touch backup-etc-`date +%F`.txt