shell脚本案例(二)

Linux Shell 脚本经典案例(二) 1 iptables自动屏蔽访问网站频繁的IP 场景:恶意访问,安全防范 1)屏蔽每分钟访问超过200的IP 方法1 :根据访问日志(Nginx为例) #!/bin/bash DATE = $(date +%d/%b/%Y:%H:%M) ABNORMAL_IP = $(tail -n5000 access.log | grep $DATE | awk ‘{a[$1]++}END{for(i in ... 阅读详情

接上篇
16、服务器上跑的是LNMP环境,近期总是有502现象。502为网站访问的状态码,200正常,502错误是nginx最为普遍的错误状态码。由于502只是暂时的,并且只要一重启php-fpm服务则502消失,但不重启的话,则会一直持续很长时间。所以有必要写一个监控脚本,监控访问日志的状态码,一旦发生502,则自动重启一下php-fpm。
我们设定:
1)access_log /data/log/access.log
2)脚本死循环,每10s检测一次(假设每10s钟的日志条数为300左右)
3)重启php-fpm的方法是 /etc/init.d/php-fpm restart

  • 用curl检测状态码是否是502或者通过分析访问日志判断状态码的比率
  • 重启php-fpm服务的命令
#!/bin/bash
log=/data/log/access.log
while :
do
502_n=`tail -n 300 $log |grep -c ' 502 '`
if [ -z "$502_n" ]
then
    exit
fi

if [ $502_n -gt 100 ]
then
    /etc/init.d/php-fpm restart >/dev/null 2>/tmp/php-fpm.err
    fpm_p_n=`pgrep -l php-fpm|wc -l`
    if [ $fpm_p_n -eq 0 ]
    then
        python mail.py xxx@xx.com "php-fpm重启失败" "`head -1 /tmp/php-fpm.err`"
        exit
    fi
fi
sleep 10
done

17、有两台Linux服务器A和B,假如A可以直接ssh到B,不用输入密码。A和B都有一个目录叫做/data/web/ 这下面有很多文件,当然我们不知道具体有几层子目录,假若之前A和B上该目录下的文件都是一模一样的。但现在不确定是否一致了。固需要我们写一个脚本实现这样的功能,检测A机器和B机器/data/web/目录下文件的异同,我们以A机器上的文件作为标准。比如,假若B机器少了一个a.txt文件,那我们应该能够检测出来,或者B机器上的b.txt文件有过改动,我们也应该能够检测出来(B机器上多了文件不用考虑)。

#!/bin/bash
dir=/data/web
[ -f /tmp/md5.list ] && rm -f /tmp/md5.list
find $dir/ -type f > /tmp/file.list
while read line 
do
    md5sum $line  >> /tmp/md5.list
done < /tmp/file.list

scp /tmp/md5.list B:/tmp/
[ -f /tmp/check_md5.sh ] && rm -f /tmp/check_md5.sh

cat >/tmp/check_md5.sh << EOF
#!/bin/bash
dir=/data/web
n=\`wc -l /tmp/md5.list|awk '{print \$1}'\`
for i in \`seq 1 \$n\`
do
    file_name=\`sed -n "\$i"p /tmp/md5.list |awk '{print \$1}'\`
    md5=\`sed -n "\$i"p /tmp/md5.list|awk '{print \$2}'\`
    if [ -f \$file_name ]
    then
	md5_b=\`md5sum \$file_name\`
	if [\$md5_b != \$md5 ]
	then
	    echo "\$file_name changed."
	fi
    else
	echo "\$file_name lose."
    fi
done
EOF
scp /tmp/check_md5.sh B:/tmp/
ssh B "/bin/bash /tmp/check_md5.sh"

18、设计一个shell脚本来备份数据库,首先在本地服务器上保存一份数据,然后再远程拷贝一份,本地保存一周的数据,远程保存一个月。假定,我们知道mysql root账号的密码,要备份的库为discuz,本地备份目录为/bak/mysql, 远程服务器ip为192.168.123.30,
远程提供了一个rsync服务,备份的地址是 192.168.123.30::backup . 写完脚本后,需要加入到cron中,每天凌晨3点执行。

  • 备份数据库的命令
  • 同步到远程去的命令
  • 本地一周,可以用date +%w做为后缀,远程一个月可以用date +%d做为后缀
#!/bin/bash
d1=`date +%w`
d2=`date +%d`
local_bakdir=/bak/mysql
remote_bakdir=192.168.123.30::backup

exec 1> /tmp/mysqlbak.log  2>/tmp/mysqlbak.err
echo "mysql bakcup begin at `date`"
mysqldump -uroot -pxxxx discz > $local_bakdir/discuz.sql.$d1
rsync -az $local_bakdir/discuz.sql.$d1 $remote_bakdir/discuz.sql.$d2
echo "mysql backup end at `date`"

19、计算文档a.txt中每一行中出现的数字个数并且要计算一下整个文档中一共出现了几个数字。例如a.txt内容如下:
12aa*lkjskdj
alskdflkskdjflkjj
我们脚本名字为 ncount.sh, 运行它时:
bash ncount.sh a.txt
输出结果应该为:
2
0
sum:2

#!/bin/bash
sum=0
while read line
do
    line_n=`echo $line|sed 's/[^0-9]//g'|wc -L`
    echo $line_n
    sum=$[$sum+$line_n]
done < $1
echo "sum:$sum"

20、写一个脚本,判断本机的80端口(假如服务为httpd)是否开启着,如果开启着什么都不做,如果发现端口不存在,那么重启一下httpd服务,
并发邮件通知你自己。脚本写好后,可以每一分钟执行一次,也可以写一个死循环的脚本,30s检测一次。

  • 检测80端口使用nmap -p 80 127.0.0.1或者netstat -lntp|grep -w 80
  • 重启httpd服务的命令要知道
  • 发邮件脚本依然使用mail.py
#!/bin/bash
m=123@123.com
while :
do
    n=`netstat -lntp |grep ':80 '|wc -l`
    if [ $n -eq 0 ]
    then
        /usr/local/apache2/bin/apachectl -k restart 2>/tmp/apache.err
        python mail.py $m "80端口关闭" "已经重启httpd服务"
        pn=`pgrep -l httpd|wc -l`
	if [ $pn -eq 0 ]
	then
	    python mail.py $m "httpd重启失败" "`head -1 /tmp/apache.err`"
	fi
    fi
    
    sleep 30
done

21、假如需要每小时都去执行一个脚本。在脚本中实现这样的功能,当时间是0点和12点时,需要将目录/data/log/下的文件全部清空,注意只能清空文件内容而不能删除文件。而其他时间只需要统计一下每个文件的大小,一个文件一行,输出到一个按日期和时间为名字的日志里。需要考虑/data/log/目录下的二级、三级、… 等子目录里面的文件。

#!/bin/bash
dir=/tmp/log_stat
t=`date +%d%H`
t1=`date +%H`
logdir=/data/log

[ -d $dir ] || mkdir $dir
[ -f $dir/$t.log ] && rm -f $dir/$t.log

if [ $t == "00" -o $t == "12" ]
then
    for f in `find $logdir/ -type f`
    do
	> $f
    done
else
    for f in `find $logdir/ -type f`
    do
	du -sh $f >> $dir/$t.log
    done
fi

22、找到/123目录下所有后缀名为.txt的文件

  1. 批量修改.txt为.txt.bak
  2. 把所有.bak文件打包压缩为123.tar.gz
  3. 批量还原文件的名字,即把增加的.bak再删除
  • find用来查找所有.txt文件
  • tar打包一堆文件
  • 还原文件名用for循环
#!/bin/bash
find /123/ -type f -name "*.txt" > /tmp/txt.list 
for f in `cat /tmp/txt.list`
do
    mv $f  $f.bak
done

#find /123/ -type f -name *.txt |xargs -i mv {} {}.bak 
#find /123/ -type f -name *.txt -exec mv {} {}.bak \;

for f in `cat /tmp/txt.list`
do
    echo $f.bak
done > /tmp/txt.bak.list 

tar -czvf 123.tar.gz `cat /tmp/txt.bak.list |xargs `

for f in `cat /tmp/txt.list`
do 
    mv $f.bak $f
done 

23、写一个shell脚本来看看你使用最多的命令是哪些,列出你最常用的命令top10。

cat ~/.bash_history |sort |uniq -c |sort -nr |head

24、设计一个脚本,监控远程的一台机器(假设ip为180.163.26.39)的存活状态,当发现宕机时发一封邮件给你自己。
ping -c10 180.163.26.39 通过ping来判定对方是否在线
发邮件脚本 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py

#!/bin/bash
n=`ping -c5 180.163.26.39|grep 'packet' |awk -F '%' '{print $1}' |awk '{print $NF}'`
if [ -z "$n" ]
then
    echo "脚本有问题。"
    python mail.py  $m "检测机器存活脚本$0有问题" "获取变量的值为空"
    exit
else
    n1=`echo $n|sed 's/[0-9]//g'`
    if [ -n "$n" ]
    then
        echo "脚本有问题。"
        python mail.py  $m "检测机器存活脚本$0有问题" "获取变量的值不是纯数字"
        exit 
    fi
fi

if 
m=123@qq.com
while :
do
    if [ $n -ge 50 ]
    then
    	python mail.py $m "机器宕机" "丢包率是$n%"
    fi
    sleep 30
done

25、有一台服务器作为web应用,有一个目录(/data/web/attachment)不定时地会被用户上传新的文件,但是不知道什么时候会上传。所以,需要我们每5分钟做一次检测是否有新文件生成。请写一个shell脚本去完成检测。检测完成后若是有新文件,还需要将新文件的列表输出到一个按年、月、日、时、分为名字的日志里。

#!/bin/bash
basedir=/data/web/attachment
t=`date +%Y%m%d%H%M`

find $basedir/ -type f -mmin -5 > /tmp/file.list
n=`wc -l /tmp/file.list|awk '{print $1}'`
if [ $n -lt 0 ]
then
   mv /tmp/file.list /tmp/$t.list
fi

26、写一个脚本计算一下linux系统所有进程占用内存大小的和。

  • ps命令用法
  • for循环
  • 加法运算
#!/bin/bash
sum=0
for n in `ps aux |grep -v 'TIME COMMAND'|awk '{print $6}'`
do
    sum=$[$sum+$n]
done
echo $sum

27、写一个shell脚本,检测所有磁盘分区使用率和inode使用率并记录到以当天日期为命名的日志文件里,当发现某个分区容量或者inode使用量大于85%时,发邮件通知你自己。

#!/bin/bash
dir=/tmp/disk
d=`date +%F`
mail=123@123.com

[ -d $dir ] || mkdir $dir

df >> $dir/$d.log
df -i >> $dir/$d.log

df|sed '1d' |awk -F ' +|%' '$5>=85 {print $7}' > $dir/df.tmp
df -i|sed '1d' |awk -F ' +|%' '$5>=85 {print $7}' > $dir/df_i.tmp

n1=`wc -l $dir/df.tmp|awk '{print $1}'`
n2=`wc -l $dir/df_i.tmp|awk '{print $1}'`

tag=0
if [ $n1 -gt 0 ]
then
    if [ $n2 -gt 0 ]
    then
	tag=11
    else
	tag=10
    fi
else
    if [ $n2 -gt 0 ]
    then
	tag=01
    else
	tag=00
    fi
fi

case $tag in
    11)
	python mail.py $mail "磁盘空间和inode使用率高于85%" "`cat $dir/df.tmp $dir/df_i.tmp|xargs`"
        ;;
    10)
	python mail.py $mail "磁盘空间使用率高于85%" "`cat $dir/df.tmp|xargs`"
	;;
    01)
	python mail.py $mail "磁盘inode使用率高于85%" "`cat $dir/df_i.tmp|xargs`"
	;;
    *)
	;;
esac

28、有日志1.log,部分内容如下

112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com “/seccode.php?update=0.5593110133088248″ 200″http://formula-x.haotui.com/registerbbs.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)”
61.147.76.51 – [25/Sep/2013:16:08:31 +0800]xyzdiy.5d6d.com “/attachment.php?aid=4554&k=9ce51e2c376bc861603c7689d97c04a1&t=1334564048&fid=9&sid=zgohwYoLZq2qPW233ZIRsJiUeu22XqE8f49jY9mouRSoE71″ 301″http://xyzdiy.5d6d.com/thread-1435-1-23.html” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”

统计出每个IP访问量有多少

awk '{print $1}' 1.log|sort |uniq -c |sort -n -r

29、写个shell,看看你的Linux系统中是否有自定义用户(普通用户),若是有,一共有几个

#!/bin/bash
v=`awk -F 'release ' '{print $2}' /etc/redhat-release |cut -d '.' -f1`
user()
{
      if [ $1 -eq 0 ]
      then
          echo "系统没有自定义的用户"
      else
          echo "系统存在自定义用户,有$1个"
      fi
}
case $v in 
  5|6)
      n=`awk -F ':' '$3>=500' /etc/passwd|wc -l`
      user $n
  ;;
  7)
      n=`awk -F ':' '$3>=1000' /etc/passwd|wc -l`
      user $n
  ;;
  *)
     echo "脚本出错."
  ;;
esac 

30、请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,
例如生成的文件名为2017-12-20.log,
并且把磁盘的使用情况写到到这个文件中,
不用考虑cron,仅仅写脚本即可

#! /bin/bash
d=`date +%F`
dir=/data/logs/disklog
if [ ! -d $dir ]
then
        mkdir -p $dir
fi
df -h > $dir/$d.log
find $dir/ -mtime +365 -exec rm -rf {} \;
shell脚本案例(二):HDFS文件定期清理 鄙人最近刚从运维转向运维开发,接到一个任务。当前环境的HDFS的空间使用率,即将达到95%,手动清理比较繁琐,需要写个脚本定期清理下最早5天的日志量。 解决思路 设定使用率阈值 当达到阈值,查找最早5天的日志 将查找到的日志文件删除 问题 Linux shell可以用find通过时间来查找文件,但hdfs shell 的find参数似乎不能用时间来查找。因此需要先将dfs l... 阅读详情

相关推荐

shell解压zip压缩包脚本

使用shell写的解压zip压缩包的脚本,可对有规律的文件进行循环解压

开发者注意了,私密地址被莫名访问,接口被莫名调用,有可能是360的锅

180.163.220.3和180.163.220.4两个IP地址相隔10秒直接访问测试接口地址,不可思议,而且仅有一条记录。 开发工具vs,用360浏览过。 180.163.220.3 Mozilla/5.0+(Linux;+U;+Android+8.1.0;+zh-CN;+EML-AL00+Build/HUAWEIEML-AL00)+AppleWebKit/537.36+(KHTML,+l...

Mr.Xiao 3435

shell备份文件、重命名文件、删除指定文件的3个脚本分享

主要介绍了shell备份文件、重命名文件、删除指定文件的3个脚本分享,是学习shell时的练习脚本,shell新手朋友可以参考下哦

利用shell脚本一键查询生产环境日志

利用shell脚本一键查询生产环境日志

qq_28977553的博客 1193

图形引擎实战:镭射效果制作分享

该方案的优势1.遵循物理的2.可以使用少量的参数去调控镭射的效果。计算相对简单,缺点仍是颜色不能够自定义,还有一种常见的方案是采样一张镭射贴图来模拟,好处是颜色可以自定义同时性能上还很高效没有复杂的公式计算。我查阅了网上普遍的方案,常见的做法是制作一个Ramp图生成工具,然后将生成好的ramp图赋给材质。这两个方案的好处是美术同学可以手动的去控制镭射的颜色。最后就是Shader中对Ramp图的采样的部分,Ramp图的UV坐标是使用fresnel作为Ramp的U轴坐标,0.5作为V轴坐标。

qq_41166022的博客 1350

(ZOS-API)Matlab控制ZEMAX软件调整光学系统某镜面位姿

所用软件的版本:MatlabR2022a, Zemax OpticStudio2024R1交互扩展功能,Zemax和可以同时打开,操作会比较方便在ZEMAX软件中,调整次镜位置通常有两种方法:1.在次镜前后各添加一个坐标间断面,并修改其“偏心X”“偏心Y”等参数来调整次镜的位姿;2.或者直接在次镜属性选项中设置相关数值。这两种方法对Zernike系数的采集结果无显著影响。

ecilifurt的博客 911

shell 脚本查看日志 (递归调用实现不同的位置的查找)

本文总结一下 shell 查看日志的脚本 首先在我们开发的过程中不管我们是做什么开发,java也好数据库也好都会在服务器上产生大量的日志。这些如果日志文件太大的话我们就会查看起来很困难。(想一想在几万行的日志文件中找一个关键字是不是很难受)这时候虽然有查找的命令但是还是手工操作难免手滑。 这个脚本主要是 1 能够按照我们要查找的关键字查找并给出上下文,打印在终端。 2 能够设置上...

wangrui1605的博客 4063

一个开源的AI数据分析工具,与数据对话,一键生成SQL、图表、表格、报告和智能商业分析。

Wren AI是一个开源的AI智能代理,让用户能够跟数据对话,实现从文本到SQL的转换,还能生成图表、电子表格、报告以及商业智能分析。它支持多种语言,能深入挖掘数据价值,提供智能数据探索功能,通过语义索引和精心设计的界面,让用户无需写代码即可获取洞察。Wren AI采用独特的架构,包含Wren UI、Wren AI Service和Wren Engine三大核心服务,可部署在本地或云端,助力团队高效、安全地解锁数据潜力。

AI_Charlotte的博客 4491

shell脚本:检测服务器存活状态/80端口/502状态码

文章目录检测服务器是否存活 检测服务器是否存活 需求:ping一台需要被检测的服务器,如果丢包率为100%,则表示机器出问题了,随后发送报警邮件(首先需要一个邮箱账号,并开启smtp服务,报警邮件将由该邮箱发出) 创建发送邮件的Python脚本: #!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import ...

FUYY'S BLOG 3356

附录B:Standard Delay Format(SDF)(上)

本附录将介绍标准延迟标注格式,并说明了如何在仿真中执行反标。 延迟格式描述了设计网表的单元延迟和互连走线延迟,无论设计是用两种主要硬件描述语言(VHDL或Verilog HDL)中的哪一种所描述的。 本章还会介绍仿真的反标(backannotation),STA的反标其实是一个简单直接的过程,其中DUA中的时序弧将由SDF所指定的延迟进行标注。

To the beyond and infinity! 5408

医药领域知识图谱快速及医药问答项目(项目全过程)

该项目是中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目 Github项目地址:mirrors / liuhuanyong / qasystemonmedicalkg · GitCode 一、项目环境搭建 该部分要十分注意,由于版本升级的问题,一些用法及格式已经不兼容了。 python3.8 下载地址:Python Release Python 3.8.10 | Python.orght...

qq_52062182的博客 9914

深入百度蜘蛛IP段详解

大家进行网站日志分析的时候,常见到很多不同IP段的百度蜘蛛,为了方便大家更好的进行日志分析,下面列举了百度不同IP段常见蜘蛛的一些详情情况,及所谓的降权蜘蛛,沙盒蜘蛛,高权重蜘蛛等等。众所周知,百度蜘蛛爬虫对于网站SEO有很好的索引和帮助,能够快速在百度首页通过关键词搜索直达您的网站。百度蜘蛛(Baiduspider)爬取是搜索引擎获得页面内容的一个重要的途径,通过蜘蛛的抓取可以得到一个页面的最主...

Enweitech Software Works 4万+

ADC学习(3)——采样电路

第三章 采样电路

夏风喃喃的博客 3万+

shell脚本30个案例(二)

案例六、

2401_82737195的博客 1475

【Python爬虫案例教学】超简洁代码采集原神所有角色信息

(。・∀・)ノ゙嗨 大家好,这里是池鱼

xiaoyuan_____的博客 2419

OpenClaw 实战:7个真实场景的多 Agent 落地经验

《OpenClaw实战:7个真实场景的多Agent落地经验》摘要: 作者Maynor分享了从单Agent转向多Agent架构的实战经验。最初遇到的单Agent记忆混乱问题(如Flutter助手被C++话题干扰),通过拆分专项Agent(flutter-tutor/cpp-tutor等)并配置独立workspace解决。随后面临的技能调用混乱问题,采用"基础通用能力+专属能力"分层策略,通过Clawhub管理工具市场,将工具调用准确率从60%提升至95%。最后探讨多Agent协同方案,引入

Maynor的博客 1411

Shell脚本10大实战案例速学二

本文展示了Shell脚本编写的10个实用案例(11-20),涵盖函数定义、文件遍历、字符串处理、权限判断等常见任务。主要内容包括:1) 定义带参数的函数并输出用例名;2) 遍历目录下特定扩展名文件;3) 字符串替换和长度计算;4) 文件行数统计技巧;5) 用户权限判断;6) 使用case语句处理多条件分支;7) 字符串处理技巧(截取整数部分);8) 添加脚本注释的最佳实践。每个案例均包含代码示例和详细解析,适合Shell脚本初学者循序渐进学习。

qq_45008722的博客 818

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

linux 测试shell文件,Linux Shell脚本测试案例(二)

脚本1:编写SHELL脚本监控主机1、用vi命令在/root目录是新建一个脚本文件sysmon.sh,内容如下:附:a:使用df命令提取根分区的磁盘占用率:如下图所示:使用df -h命令查看磁盘分区的使用情况,其中根分区的已用空间是10%用如下图中的命令可以过滤磁盘的已用空间b:使用mpstat命令提取CPU使用率(要确保sysstat软件包已安装)。如下图所示:其中%idle表示CPU空闲时间...

weixin_39606911的博客 531

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

linux shell脚本案例二

5.1 变量的基本知识       1.变量定义时候不使用$,调用的时候使用$;        2. 变量名和等号之间不能有空格;        3. 首个字符必须为字母(a-z,A-Z)        4. 中间不能有空格,可以说使用下划线(-)        5. 不能使用标点符号。        6. 不能使用bash里的关键字; 5.2

健康平安的活着的专栏 318

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Linux Shell脚本测试案例(二)

脚本1:编写SHELL脚本监控主机 1、用vi命令在/root目录是新建一个脚本文件sysmon.sh,内容如下: 附: a:使用df命令提取根分区的磁盘占用率:如下图所示: 使用df -h命令查看磁盘分区的使用情况,其中根分区的已用空间是10% 用如下图中的命令可以过滤磁盘的已用空间 b:使用mpstat命令提取CPU使用率(要确保syssta...

weixin_34269583的博客 138

linux shell 批量清空,shell脚本案例(二)批量删除用户

案例-接着上一个案例希望批量删除上个案例创建的所有用户脚本展示:(下次再解释)#!/bin/bashecho > userlist.txt;for i in `seq 50`doid student$i >/dev/null 2>/dev/null;[ $? -ne 0 ] && echo -e "[\033[31merror\033[0m] user stude...

weixin_34094559的博客 443

shell脚本应用(二)test,if应用案例

测试目录/media/是否存在 测试目录/media/cdrom/Server是否存在 测试目录/media/是否存在输出结果直接输出 测试目录/media/cdrom/Server是否存在,直接输出结果 判断当前已登录用户树,当超过5个时输出Too many 判断物理内存当前磁盘缓存大小,当低于1024MB时输出具体数值 判断当前系统的语言环境,当发现不是“en.US“ 时输出信息 ”Not en.US“ 展示确认交互的简单过程 判断当前Linu

weixin_45014003的博客 183

shell脚本案例(二)批量删除用户

案例-接着上一个案例希望批量删除上个案例创建的所有用户脚本展示:(下次再解释) #!/bin/bash echo &gt; userlist.txt; for i in `seq 50` do id student$i &gt;/dev/null 2&gt;/dev/null; [ $? -ne 0 ] &amp;&amp; echo -e "[\033[31merror\033[0m] ...

运维少年 2129

常见的Shell脚本编写案例(二)

常见的Shell脚本编写(中) 文章目录常见的Shell脚本编写(中)1.11 屏蔽网站访问频繁的IP1.12 判断输入是否为IP1.13 判断输入是否为数字1.15 监控目录,将新创建的文件名追加到日志中1.17 查看网卡实时流量1.18 MySQL数据库备份1.19 Nginx启动脚本1.20 选择SSH连接主机 1.11 屏蔽网站访问频繁的IP 1)屏蔽每分钟访问超过200的IP 方法1:以Nginx日志作为测试 DATE=$(date +%d/%b/%Y:%H:%M) ABNORMAL_IP=$(t

LPFAM的博客 388
上一篇: shell脚本案例(一)
下一篇: shell脚本案例30个带详细解析
别散
博客等级 码龄6年 21粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值