awk小练习

linux awk

1、统计/etc/fstab文件中每个文件系统类型出现的次数
[root@CentOS74 ~]#awk ‘/^(UUID)/{types[$3]++}END{for(type in types){printf “%-6s : %5d\n”,type,types[type]}}’ /etc/fstab
swap : 1
xfs : 3
[root@CentOS74 ~]#

2、统计/etc/fstab文件中每个单词出现的次数
#awk ‘{for(i=1;i<=NF;i++)words[$i]++}END{for(word in words){printf “%-50s : %5d\n”,word,words[word]}}’ /etc/fstab

3、提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字
方法一:
[root@CentOS74 ~]#echo “Yd$C@M05MB%9&Bdh7dq+YVixp3vpw” | awk -F ” ‘{for(i=1;i<=NF;i++){if($i ~ /[[:digit:]]/){str=$i;strs=(strs str)}}print strs}’
05973
[root@CentOS74 ~]#

方法二:
[root@CentOS74 ~]#echo “Yd$C@M05MB%9&Bdh7dq+YVixp3vpw” | awk -F ” ‘{for(i=1;i<=NF;i++){if($i ~ /[[:digit:]]/){strs[i]=$i}}}END{for(str in strs){printf “%d”,strs[str]}printf “\n”}’
05937
[root@CentOS74 ~]#

4、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,
即调用防火墙命令封掉对应的IP,监控频率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
[root@CentOS74 bin]#cat deny_dos.sh
#!/bin/bash

for ip in `awk ‘/^[0-9]+/{ipaddrs[$1]++}END{for(ipaddr in ipaddrs){if(ipaddr>=100)print ipaddr}}’ /root/bin/access_log`
do

eval echo -e ‘$ip iptables -A INPUT -s $ip -j REJECT’i | tee -a /root/bin/iptables.log
/usr/sbin/iptables -A INPUT -s $ip -j REJECT
if [ $? -eq 0 ]; then
eval echo -e ‘add OK: iptables -A INPUT -s $ip -j REJECT’ | tee -a /root/bin/iptables.log
fi
done
[root@CentOS74 bin]#
[root@CentOS74 ~]#crontab -l
*/5 * * * * /root/bin/deny_dos.sh $> /dev/null
[root@CentOS74 ~]#

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99012

(0)
linux_testlinux_test
上一篇 2018-05-20 17:55
下一篇 2018-05-20 18:54

相关推荐

  • TCP/IP协议

    无线网络标准 IEEE 802.3 802.11a/b/g/n/ac 物理层,数据链路层data link layer   以太网是工作在物理层和数据链路层上 单工,双工(物理层概念) 单工:单向传输数据    (广播,收音机) 双工:双向传输数据 全双工:同时双向       (手机) 半双工:轮流双向     (对讲机)   Hub集…

    Linux笔记 2018-06-24
  • 追梦之路第七周修炼

    追梦之路第七周操作系统启动流程

    2018-08-06
  • centos7下的raid10实现及挂载

    需求分析,实现raid10可以有两种方法,第一种是先实现raid1,然后对raid1实现raid0,第二种是一次生成raid10。生成raid1至少需要2个分区或者硬盘,生成raid0至少需要2个分区或者硬盘,因此新建4个分区来实现本次试验。实现raid的命令是mdadm命令,下面介绍一下命令的常用选项-C 创建raid,后跟raid名称,例如/dev/md…

    Linux笔记 2018-04-29
  • Docker容器一

    容器的安装,镜像的管理,镜像的制作

    2018-07-31
  • Linux文本处理三剑客之grep 和 正则表达式

    本文主要介绍:1、文本处理工具grep 2、正则表达式

    2018-04-17
  • Tomcat的简介和应用

    tomcat的配置文件;tomcat的虚拟主机;tomcat的图形管理界面;tomcat的负载均衡;

    2018-07-16