linux压缩文件不含有日志,linux – 如何组合两个命令来计算压缩和未压缩日志文件中的数据?...

我正在运行此命令以从服务器的auth.log获取失败登录尝试的计数,并且它运行良好:

sudo cat /var/log/auth.{log,log.1} | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort -k 1,1M -k 2n | uniq -c

但问题是 – 就像世界上的每个服务器一样 – 我有一些由日志轮换创建的GZip压缩文件,这个命令不会解析:

-rw-r----- 1 syslog adm 7822722 Oct 31 13:44 /var/log/auth.log

-rw-r----- 1 syslog adm 12532511 Oct 25 06:59 /var/log/auth.log.1

-rw-r----- 1 syslog adm 2250939 Oct 18 06:55 /var/log/auth.log.2.gz

-rw-r----- 1 syslog adm 2139669 Oct 11 07:06 /var/log/auth.log.3.gz

-rw-r----- 1 syslog adm 2769919 Oct 4 06:54 /var/log/auth.log.4.gz

为了处理那些我有一个使用zcat而不是cat的命令的变体,但是必须运行两个命令来获取这些数据有点麻烦.有没有办法将cat和zcat命令组合成一个命令,这样我才能得到组合结果?我知道我可以编写一些Bash脚本来过滤压缩文件和未压缩文件,但我在各种服务器上使用这个当前的单行程序,我希望有一个单行程,我可以快速参考并在需要时使用.

更多细节.

我一直在做一些安全审计和防火墙调整,并且运行了这个命令,这给了我一个很好的“Uailed密码”尝试来自Ubuntu Linux机器上的auth.log文件:

sudo cat /var/log/auth.{log,log.1} | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort -k 1,1M -k 2n | uniq -c

它很棒!输出看起来像这样:

5909 Oct 18

13444 Oct 19

351 Oct 20

162 Oct 21

499 Oct 22

377 Oct 23

145 Oct 24

10897 Oct 25

76 Oct 26

54 Oct 27

310 Oct 28

1024 Oct 29

208 Oct 30

30 Oct 31

虽然这对于未压缩的日志非常有效,但由于日志会旋转并被压缩,因此总会有一些GZip压缩文件也可以很好地计算.所以我运行上面使用zcat的命令的这个变种:

sudo zcat -q /var/log/auth.log* | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort -k 1,1M -k 2n | uniq -c

输出是这样的:

gzip: /var/log/auth.log: not in gzip format

gzip: /var/log/auth.log.1: not in gzip format

10413 Sep 27

15977 Sep 28

12297 Sep 29

14438 Sep 30

23394 Oct 1

12912 Oct 2

15844 Oct 3

19697 Oct 4

15350 Oct 5

12358 Oct 6

12692 Oct 7

8377 Oct 8

10875 Oct 9

565 Oct 10

16027 Oct 11

10422 Oct 12

6808 Oct 13

26891 Oct 14

9493 Oct 15

5138 Oct 16

9415 Oct 17

2226 Oct 18

正如您所看到的,输出在它工作时起作用,但如果此命令的cat和zcat变体可以简单地组合成一个命令,那将会很好.怎么办?

奖励积分:

这些都不是关键问题,但如果以某种方式可以在解决方案中解决它们会很好:

>请注意,在zcat输出的顶部,zcat尝试处理两个未压缩文件时出现两个错误.压制那会很好.

>另请注意cat和zcat命令如何显示10月18日的数据;日志轮换发生的那一天.有没有办法在命令中添加这两个值?如果没有,我很好,有两行10月18日数据具有不同的值,我将不得不手动加起来.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值