Linux简单脚本学习

Linux简单脚本学习

第一题:判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。

 

1.首先我们需要安装并配置邮件服务

[root@server ~]# yum  install  s-nail  -y   #安装邮件客户端

[root@server ~]# vim  /etc/s-nail.rc    #打开配置文件并在末尾添加如下内容



set from=……………@qq.com   # 自己的邮箱地址

set smtp=smtp.qq.com        # 发邮件协议

set smtp-auth-user=……………@qq.com     # 自己的邮箱地址

set smtp-auth-password=……………   # 授权码

set smtp-auth=login 

注意:退出时输入wq! ,强制保存并退出

 

2.到此我们可以测试邮件服务程序是否配置成功:

[root@server ~]# echo  "yes"  | mail  -s  "yes"   …………@qq.com

3. 创建脚本文件编写脚本:

[root@server ~]# vim  dxl.sh

#!/bin/bash



dxl=$(df -m | grep  -w  "/" | tr -s " " | cut -d " " -f4)   #定义变量存储查询的剩余空间数值(单位M)



if (( "$dxl" <= 20000 ))         #判断剩余空间是否剩余20000M不足则发邮件告警

then

        echo "Warning Insufficient memory 20G"  |  mail  -s  "Warning"  …………@qq.com

fi

c704d88037c14c1bb230cb54c3454f5c.png

 

4.将执行此脚本写入系统计划任务中:

[root@server ~]# vim  /etc/crontab



0 0 * * *  root  /bin/bash  /root/dxl.sh

 

*

表示任意时刻

-

表示时间范围

,(逗号)

表示分割时段

*/数字

指定时间和间隔频率,如:每3分钟执行一次:*/3

注意:

1. 6 个字段都不能为空,如果不确定则使用*表示任意时间

2. crontab命令任务的最小时间单位为分钟,最大有效时间为月,如:2024年某时执行、3点30分30秒这样的时间日期无法被识别

3. 定义时间时,日期和星期最好不要一起出现,由于都是以天为单位,非常让管理员混淆

4. 在定时任务中不能,不管是写命令还是在脚本中写命令,最好都用绝对路径,相对路径有时会报错

 

第二题:判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。

创建并编写脚本:

[root@server ~]# vim ht.sh

#!/bin/bash

ht=$(ps -ef | grep httpd | grep -v grep |  wc -l)   # 根据进程条目数统计,排除命令自己$()可替换为` `

if (($ht>0))           #可替换为[ "$ht" -gt 0 ]

then

        echo "Httpd is already running"

else

        echo "Httpd stop,The driver being installing..."

        yum  install httpd -y > /dev/null          #不显示提示信息

        systemctl start httpd

        systemctl start firewalld

        firewall-cmd --permanent --zone=public --add-service=http  > /dev/null

        firewall-cmd --permanent --zone=public --add-port=80/tcp   >/dev/null

        firewall-cmd --reload > /dev/null

        echo "Httpd is already running."

fi

ffb095959ba248bd9f39a6f8c5e89dba.png

 

也可通过端口判断:

[root@server ~]# ss -lntup | grep -w 80 | wc -l

 

第三题:使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web server is running;如果不能正常访问,返回12状态码。

创建并编写脚本:

[root@server ~]# vim htor.sh

#!/bin/bash

ip=`ip a | grep ens160 | grep inet | cut -d  /  -f1 | tr -s ' ' | cut -d ' ' -f3`

curl -s $ip > /dev/null

if (($?==0))

then

        echo "web server is running"

else

        echo "Web not accessible"

        exit 12

fi

c7e511a032e843ebbb55e1b8261b1ecf.png

253e157f0d0247019ddc18435041e308.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值