在Linux中,SSH服务器的日志文件通常位于/var/log/auth.log
(对于Ubuntu/Debian系统)或/var/log/secure
(对于RHEL/CentOS系统)
- 使用
grep
命令搜索特定事件或IP地址:
grep 'sshd.*Failed password for root' /var/log/auth.log grep '192.168.1.100' /var/log/secure
- 使用
awk
命令过滤日志中的特定时间段:
awk '/sshd.*Failed password for root/ {print $1}' /var/log/auth.log | awk '$1 >= "12:00" && $1 <= "18:00" {print}'
- 使用
sed
命令删除不需要的行:
sed '/sshd.*Failed password for root/d' /var/log/auth.log
- 使用
sort
和uniq
命令查找重复登录尝试:
grep 'sshd.*Failed password for root' /var/log/auth.log | sort | uniq -c | sort -nr
- 使用
cut
命令提取特定字段:
grep 'sshd.*Failed password for root' /var/log/auth.log | cut -d ' ' -f 1,2,3
- 使用
tail
命令查看日志的最后几行:
tail -n 100 /var/log/secure
- 使用
head
命令查看日志的前几行:
head -n 100 /var/log/secure
- 使用
wc
命令统计日志中的行数、单词数或字符数:
wc -l /var/log/secure wc -w /var/log/secure wc -c /var/log/secure
- 使用
awk
命令计算特定条件下的行数:
awk '/sshd.*Failed password for root/ {print $1}' /var/log/auth.log | awk '$1 >= "12:00" && $1 <= "18:00" {print}' | wc -l
- 使用
grep
和wc
命令查找包含特定字符串的行数:
grep 'Failed password for root' /var/log/auth.log | wc -l
这些示例仅涉及SSH服务器日志分析的一部分。您可以根据需要组合这些命令以满足您的需求。如果您需要更高级的日志分析,可以考虑使用日志分析工具,如ELK Stack(Elasticsearch, Logstash, Kibana)或Graylog。