当前位置: 首页 > article >正文

shell编程第四天(day036)

1.脚本常用命令

本地检查端口 ss -luntp 

远程检查端口nmap -p80 www.baidu.com    telnet

进程  ps top

检测连通性ping iftop dig

http请求 curl/wget

系统全能 atop/all

2.shell编程的for循环

普通形式for循环

for 变量 in 候补清单列表

do

        命令

done

C语言形式for循环

for ((i=1;i<=10;i++))

do

        echo $i

done

for循环案例

双重for循环打印九九乘法表

for((i=1;i<=9;i++))
do
  for((j=1;j<=9;j++))
     do
        if [ $j -lt $i -o $j -eq $i ];then
        echo -n "$j*$i=$((j*i))  "
           [ $((j*i)) -lt 10 ] && echo -n  " "
        fi
     done
     echo
done

3.while循环

while 条件

do

       命令

done

4.退出本次循环

continue

5.while循环读取文件

file=文件

while  read line(可以改为其他名字,代表每一行)

do

命令

done <$(file)

6.案例

分析ngx访问日志找出访问量最高的前5个ip及其访问次数,ip访问次数大于200通过iptables屏蔽ip。

步骤

1.分析ngx访问日志,访问次数最高的5个ip及访问次数,保存到文件中.

2.while循环,读取res.txt文件,读取ip和次数.

3.如果次数大于200,而且防火墙规则没有这个ip,则屏蔽,已经屏蔽,则读取下一行.

4.读取直到文件结束.

#分析ngx访问日志,访问次数最高的5个ip及访问次数,保存到文件中

access_log=/server/files/access.log

result.file=/server/files/result.txt

awk '{print  $1}' ${access.log} | sort|uniq -c |sort -rn|head -5 >${result.file}

#循环判断

while read line

do

ip_cnt=`echo $line|awk '{print $1}'`

ip_addr=`echo $line|awk '{print $2}'`

if [ $ip_cnt -ge 200 -a `iptables -nL | grep -wc "${ip_addr}" ` -eq 0];then

iptables -t filter -I INPUT -s $(ip_addr) -j DROP

fi

iptables -t filter -

done

done<$(result.file)

优化,可以让while读取两个变量,count和ip,这样子就不需要ip_cnt和ip_addr

while read count ip

do

echo $count $ip

done<$(result.file)


http://www.kler.cn/a/411210.html

相关文章:

  • C#中面试的常见问题007
  • 软件团队的共担责任
  • 从ChatGPT到代理AI:安全领域的新变革
  • 了解M有SQL索引
  • LLC与反激电路设计【学习笔记】
  • 无锁编程–C语言
  • sql server 获取当前日期的时间戳
  • Leetcode105从前序与中序遍历序列构造二叉树
  • tableau-制作30个图表
  • 和数集团业务说明会(南京站)顺利举办
  • Flink Sink的使用
  • 【贪心算法第四弹——376.摆动序列】
  • VisionPro 机器视觉案例 之 凹点检测
  • JAVA面向对象核心部分
  • C++设计模式之组合模式实践原则
  • 在 Mac(ARM 架构)上安装 JDK 8 环境
  • React 第八节组件生命周期钩子-类式组件,函数式组件模拟生命周期用法
  • 2024小迪安全基础入门第七课
  • 【实用技能】使用 DHTMLX Diagram让复杂流程可视化
  • C++11特性(详解)
  • SQL on Hadoop
  • 文心一言与千帆大模型平台的区别:探索百度AI生态的双子星
  • 网络安全:关于SecOC及测试开发实践简介
  • 华硕笔记本电脑用U盘重装windows系统
  • 自动化立体仓库堆垛机货叉故障处理
  • Faster R-CNN (目标检测)