Shell编程实际应用

一、脚本编程步骤

  1. 需求分析

  2. 命令测试

  3. 脚本编程

  4. 测试调优

二、案例分析

1.MAC记录与端口扫描

实验要求:

(1)统计网络中服务器MAC。

(2)检查哪些主机开启FTP。(21)(wget)($?)

复制代码
netadd="192.168.10."
file="/opt/ethers"
[ -f $file ] && /bin/mv -f $file $file.bak
hostadd=100

while [ $hostadd -le 107 ]
do
    ping -c 2 -i 0.2 -W 2 ${netadd}${hostadd}
if [ $? -eq 0 ]
then
  arp -n | grep ${netadd}${hostadd} | awk '{print $1,$3}'>>$file
fi
let hostadd++
done
echo "主机列表是:"
cat $file
echo "以下主机开启FTP"
target=$(awk '{print $1}' /opt/ethers)
for IP in $target
do
wget ftp://$IP &>/dev/null
if [ $? -eq 0 ]
then
     echo $IP
 rm -rf index.*
fi
done

备注:
root@localhost \~# arp -n (查看MAC地址)

2. 开发监控脚本

实验要求:

(1)CPU,内存,磁盘l利用率

(2)报警

(3)通过邮箱发送邮件

复制代码
dug=$(df | grep "/$" | awk '{print $5}' | awk -F% '{print $1}')
cug=$(expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print $1}'))
mug=$(expr $(free | grep Mem | awk '{print $3}') \* 100 / $(free | grep Mem | awk '{print $2}'))
alog="/tmp/alert.txt"
amail="xxxxx@qq.com"
if [ $dug -gt 80 ]
then
    echo "磁盘利用率:${dug}%">>$alog
fi
if [ $cug -gt 80 ]
then
    echo "cug利用率:${cug}%">>$alog
fi
if [ $mug -gt 80 ]
then
    echo "内存利用率:${mug}%">>$alog
fi

if [ -f $alog ]
then
        cat $alog | mail -s "Host Alert" $amail
        rm -rf $alog
fi

备注:
root@localhost \~# df (查看磁盘利用率)
root@localhost \~# mpstat (查看cpu)
root@localhost \~# free (查看内存)
root@localhost \~# expr 235044 \* 100 / 3988652 (计算内存利用率,已使用内存空间*100 /总空)

复制代码
[root@localhost ~]# yum -y install mailx
[root@localhost ~]# vim /etc/mail.rc 
set from=xxxxx@.com smtp=smtp.qq.com
set smtp-auth-user=xxxxx@qq.com smtp-auth-password=xxxx邮箱授权码
set smtp-auth=login

备注:
set from=user@xxx.com # 发信人邮箱
set smtp=smtps://smtp.xxx.com:465 #smtp地址
set smtp-auth=login # 认证方式
set smtp-auth-user=user@xxx.com # 邮箱账号
set smtp-auth-password=password # 邮箱授权码

相关推荐
我命由我123451 小时前
匈牙利命名法
java·服务器·后端·学习·java-ee·kotlin·学习方法
小田的博客1 小时前
SAP MM 供应商银行主数据更新报错!message R1228!
android·java·服务器
牢姐与蒯1 小时前
Linux基本指令及知识点(二)
linux·运维·服务器
小玮看世界1 小时前
[Python]从“脏”数据到优雅实现:一个IoT滑动窗口最大值问题的测试驱动优化实录
linux·前端·python
2601_949499941 小时前
芯瑞科技 DT-1414 光模块工程实测:完美兼容博通(安华高) HFBR-1414PTZ,VCSEL 替代方案
大数据·网络·人工智能·科技·光模块
去伪存真20252 小时前
数字样机、态势推演与3D汇报场景下的平台选型对比
运维·服务器
云边云科技_云网融合2 小时前
连锁门店 POS、监控、IoT 设备网络不稳定怎么解决?
网络·物联网
BLi4ee3 小时前
WSL 文件资源管理器左侧 Linux / Ubuntu 入口恢复
linux·ubuntu
XR1234567883 小时前
学校宿舍区网络方案对比:多终端高并发下的认证、管理与体验
网络
March.s3 小时前
IP 存储核心 iSCSI:原理拆解 + 无报错实战指南
网络·网络协议·tcp/ip