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
下一篇 2018-05-20

相关推荐

  • 手把手系列(四)教你用kickstart自动化安装CentOS系统

    KickStart是一种半自动化的安装方式。安装者完全可以只告诉安装程序从何处获取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

    2018-05-24
  • Linux系统学习开篇第一章

    开篇笔记摘要

    Linux笔记 2018-05-14
  • 学习笔记(7)

    学习笔记(7)

    Linux笔记 2018-04-22
  • DNS搭建

    DNS:domain name service ,协议(c/s,53/udp,53/tcp dns协议的实现 udp:user datagram protocol,无连接协议 top level domain:顶级域名(tld) 主dns服务器:维护负责解析的域内解析库服务器:解析库有管理员维护 从dns服务器:从主dns服务器或者其它dns服务器上复制(区…

    2018-06-11
  • CentOS 6 开机流程

    CentOS 6 开机流程——linux由kernel和rootfs组成。kernel负责进程管理、内存管理、网络管理、驱动程序、文件系统、安全等;rootfs由程序和glibc组成,完善操作系统的功能。同时linux内核的特点是模块化,通过对模块装载卸载可以对内核功能自定义。linux内核镜像文件:/boot/vmlinuz-2.6.32-696.el6.…

    Linux笔记 2018-05-13
  • 加/与不加/的显示区别

    ll /bin加/与不加/的显示区别

    2018-03-30