码迷,mamicode.com
首页 > 系统相关 > 详细

Linux中awk的简单使用举例

时间:2020-04-26 10:47:04      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:功能   bak   脚本   ***   循环条件   for   条件   centos   示例   

1 编写脚本selinux.sh,实现开启或禁用SELinux功能

通过sed命令对centos7的/etc/selinux/config文件进行编辑:
开启selinux功能:sed -i.bak ‘s@SELINUX=disabled@SELINUX=enforcing@‘ /etc/selinux/config
关闭selinux功能:sed -i.bak ‘s@SELINUX=enforcing@SELINUX=disabled@‘ /etc/selinux/config

2 统计/etc/fstab文件中每个文件系统类型出现的次数

awk ‘/UUID/{fstype[$3]++}END{for(i in fstype){print i,fstype[i]}}‘ fstab
‘/UUID/{fstype[$3]++}’ 定义了一个数组fstype,这个数组是以fstab文件中的UUID所在行的,以空格为分隔符号的第3列的文件类型为数组的下标;
{for (i in fstype){print i,fstype[i]}} 数组的遍历,以数组下标为循环条件,然后打印数组下标及数组的值;
【示例】

技术图片

3 提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字

 for循环,以字符个数作为循环的条件;
 if判断是否为数字,如果为数字,就做字符串赋值;
 最后打印字符串
【示例】

技术图片

4 解决DOS***生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
先写一个监控峰值的脚本,再把脚本放到定时任务中执行;

{ip[$(NF-2)]++}END{for(i in ip){print i,ip[i]}}   以ip地址为下标,遍历一个数组;
{if($2>1)print $1}  打印数组中符合条件的值;
【示例】
 ss -nt | awk -F " +|:" ‘NR>1{ip[$(NF-2)]++}END{for(i in ip){print i,ip[i]}}‘ | awk ‘{if($2>1)print $1}
 */5 * * * * /data/Scripts-44/010_awk.sh 每5分钟执行一次脚本

技术图片
技术图片

Linux中awk的简单使用举例

标签:功能   bak   脚本   ***   循环条件   for   条件   centos   示例   

原文地址:https://blog.51cto.com/12752016/2490333

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!