这个脚本在 CentOS7 中如何工作?

这个脚本在 CentOS7 中如何工作?

我在 CentOS7 教程中找到了一个命令来获取尝试通过 ssh 连接的用户数量的小表:

| try| ip| user|

代码如下:

zgrep -hi "Failed password for " /var/log/secure* | sed "s/invalid user //" | tr -s " " | awk '{print $11" "$9}' | sort | uniq -c | sort -rn | head -20

zgrep -hi "Failed password for " /var/log/secure* | 
sed "s/invalid user //" | 
tr -s " " | 
awk '{print $11" "$9}' | 
sort | 
uniq -c | 
sort -rn | 
head -20

我想知道它是如何工作的?

答案1

第一个命令在 /var/log/secure 日志中搜索失败的登录尝试

zgrep -hi "Failed password for " /var/log/secure*

将产生如下结果:

Aug  1 21:22:53 jbclamp001 sshd[40401]: Failed password for jbutryn from ip.ip.ip.ip port 55843 ssh2

命令:

sed "s/invalid user //"

将搜索短语“无效用户”并将其替换为“”

命令:

tr -s " "

将从字符串中删除任何多余的空白字符。

命令:

awk '{print $11" "$9}'

然后将仅抓取第 11 和 9 列并打印它们(这是 IP 地址和用户名)

命令:

sort

然后会按字母数字对所有结果进行排序吗?

命令:

uniq -c

将删除任何重复的值

命令:

sort -rn

按相反的数字顺序对列表进行排序?

命令:

head -20

将仅显示结果中的前 20 个值。

相关内容