br/>
3、提取字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的数字
echo "Yd$C@M05MB%9&Bdh7dq+YVixp3vpw" | awk ‘{gsub(/[^0-9]/,"",$0);{print $0}}‘

4、解决DOS***生产案例:根据web日志或者网络链接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔5分钟,防火墙命令为:iptables -A INPUT -s IP -j REJECT
vim monitor_access.sh
#!/bin/bash
awk ‘{count[$1]++}END{for(i in count){if(count[i]>100){print count[i],i}}}‘ /var/log/httpd/access_log|sort -nr > /data/iplist.txt
while read count ip;do
? iptables -A INPUT -s $ip -j REJECT &> /dev/null
? echo "来自$ip IP5分钟内访问了webserver超过100次,实际请求次数:$count,威胁hostname
主机安全,已被拒绝!!!" >> /data/iptables.log
done < /data/iplist.txt
添加计划任务5分钟执行一次
crontab -e
/5 * /bin/bash /data/monitor_access.sh &> /dev/null
第十周 文本处理工具awk
原文:https://blog.51cto.com/14688937/2502306