























# 核心命令(兼容大部分系统) grep -E "Failed password|Invalid user" /var/log/secure \ | awk -v start_time="$(date -d '8 hours ago' +%b' '%d' '%H:%M:%S)" ' BEGIN { # 解析起始时间为时间戳(处理月份缩写+日期+时间格式) split(start_time, t, /[: ]/); mon_map["Jan"]=1; mon_map["Feb"]=2; mon_map["Mar"]=3; mon_map["Apr"]=4; mon_map["May"]=5; mon_map["Jun"]=6; mon_map["Jul"]=7; mon_map["Aug"]=8; mon_map["Sep"]=9; mon_map["Oct"]=10; mon_map["Nov"]=11; mon_map["Dec"]=12; start_ts = mktime(strftime("%Y") " " mon_map[t[1]] " " t[2] " " t[3] " " t[4] " " t[5]); } { # 解析日志行的时间戳 log_mon=$1; log_day=$2; log_time=$3; log_ts = mktime(strftime("%Y") " " mon_map[log_mon] " " log_day " " substr(log_time,1,2) " " substr(log_time,4,2) " " substr(log_time,7,2)); # 筛选近8小时的日志行 if (log_ts >= start_ts) { # 提取IP地址(适配不同日志格式) for (i=1; i<=NF; i++) { if ($i ~ /^([0-9]{1,3}\.){3}[0-9]{1,3}$/) { ip=$i; break; } } if (ip != "") print ip; } } ' | sort -u | awk '{print "sshd:" $0}'
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。