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

相关推荐

  • 描述Linux计算机的组成及其功能

    描述计算机的组成及其功能

    2018-04-16
  • Linux-文本工具

    文件查看 文件查看命令: cat,tac,rev cat [OPTION]… [FILE]… -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有控制符 -b:非空行编号 -s:压缩连续的空行成一行 tac     行号反转 rev     同行反转   抽取文本的工具 文件内容:less和 cat 文件…

    2018-04-08
  • 进程和计划管理

    进程 进程是运行中的程序。每个程序启动后都会创建一个或多个程序。 常用查看进程的命令 ps 默认只查看当前用户终端中打开的进程 ps aux 显示所有进程信息,包括非终端登录以及其他终端、用户打开的进程 top 在当前终端以交互式方式显示进程排名,及时跟踪CPU、内存等系统资源的使用情况,默认三秒刷新一次。 P键:根据CPU占用情况对进程进行排序 M键:根据…

    Linux笔记 2018-05-06
  • Linux 基础

    Linux 基础 一.计算机组成及其功能 当今计算机采用冯·诺依曼架构,必须具备的五大基本组成部件,包括: 1.输入数据和程序的输入设备 2.记忆程序和数据的存储器 3.完成数据加工处理的运算器 4.控制程序执行的控制器 5.输出处理结果的输出设备 计算机基本组成结构图 二.Linux的发行版,不同发行版之间的联系与区别 1.Linux 严格来说Linux是…

    2018-05-12
  • Linux用户和组简介

    练习为主

    Linux笔记 2018-07-08