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

相关推荐

  • Work One

    1、描述计算机的组成及其功能。 计算机系统 硬件(Hardware)系统 软件(Software)系统 Hardware:据冯·诺伊曼体系可分为运算器、控制器、存储器、输入设备、输出设备五大部分组成。 运算器:负责对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 控制器:CPU的组成部分之一,对程序规定的控制信息进行解释,根据其要求进行控制,调度程序…

    2018-06-26
  • linux基础3

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d ‘ ‘ -f1 | sort -u root 2、取出最后登录到当前系统的用户的相关信息。 [root@localhost ~]# last -1 | id uid=0(root…

    Linux笔记 2018-07-08
  • 网络基础

    网络基础

    2018-05-01
  • Linux系统进程管理及作业操作

    进程是正在运行的程序实体,并且包括这个运行的程序中占据的所有系统资源,比如说CPU,IO,内存,网络资源等。通过学习Linux系统进程管理来协调多道程序之间的关系,使CPU得到充分的利用。

    2018-05-05
  • 路由设置

    路由

    Linux笔记 2018-05-05
  • linux学习练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。[root@localhost etc]# cp -r /etc/skel /home/tuser1[root@localhost ~]# getfacl /home/tuser1/getfacl: Removing lead…

    Linux笔记 2018-07-15