实操 : shell编程实战
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,前言mac记录与端口扫描脚本开发系统监控脚本一 : 脚本编程步骤分享1.1 脚本编程步骤1.2 需求分析根据系统管理的需求,分析脚本要实现的功能、功能实现的层次、实现的命令与语句等1.3 命令测试将要
千家信息网最后更新 2026年11月01日实操 : shell编程实战
前言
- mac记录与端口扫描脚本
- 开发系统监控脚本
一 : 脚本编程步骤分享
1.1 脚本编程步骤
1.2 需求分析
- 根据系统管理的需求,分析脚本要实现的功能、功能实现的层次、实现的命令与语句等
1.3 命令测试
- 将要用到的命令逐个进行测试,以决定使用的选项、要设置的变量等
1.4 脚本编程
- 将测试好的命令写入到脚本文件中,并通过各种语句将命令执行的结果保存、判断或者发出报警等
1.5 调试优化
- 对脚本进行测试,并根据结果进行优化
- 建议一遍编程一边调试,以减少错误的发生
二 : mac记录与端口扫描脚本
2.1 企业环境说明
- 随着业务的不断发展,某公司所使用的Linux服务器也越来越多。在系统管理和维护过程中,经常需要编写一些使用的小脚本,以辅助运维工作,提高工作效率
2.2 需求描述
- 编写名为system.sh的小脚本,记录局域网中各主机的mac地址,保存到/etc/ethers文件中;若此文件已存在,应先转移进行备份;每行一条记录,第一列为ip地址,第二列为对应的mac地址
- 检查有哪些主机开启了匿名ftp服务,扫描对象为/etc/ethers文件的所有ip地址,扫描的端口为21
2.3 命令测试
- 分析:记录局域网中各主机的mac地址,保存到/etc/ethers文件中;若此文件已存在,应先转移进行备份;检查有哪些主机开启了匿名ftp服务,扫描对象为/etc/ethers文件的所有ip地址,扫描的端口为21
- arping -c 2 -w 1 -I 网卡名 ip地址 //发送mac地址解析请求,或者使用ping
- arp -n 记录mac
- awk 打印ip与mac地址
- 使用wget下载的方法测试ftp服务
[root@localhost ~]# arping -c 2 -w 1 -I ens33 192.168.247.134ARPING 192.168.247.134 from 192.168.247.136 ens33Unicast reply from 192.168.247.134 [00:0C:29:52:4D:89] 1.452msUnicast reply from 192.168.247.134 [00:0C:29:52:4D:89] 1.182msSent 2 probes (1 broadcast(s))Received 2 response(s)配置ftp匿名访问模式, 首先输入命令"vi /etc/vsftpd/vsftpd.conf" 打开ftp服务具体配置文件
进行修改(有点改,没有的添)(去"#"号)
| 参数 | 作用 |
|---|---|
| anonymous_enable=YES | 允许匿名访问模式。 |
| anon_umask=022 | 匿名用户上传文件的umask值。 |
| anon_upload_enable=YES | 允许匿名用户上传文件 |
| anon_mkdir_write_enable=YES | 允许匿名用户创建目录 |
| anon_other_write_enable=YES | 允许匿名用户修改目录名或删除目录 |
2.4 脚本编程与调试
- 通过arping命令发送ARP请求,使用if语句根据反馈结果记录mac地址
- 将网段地址赋值给变量,作为检测地址的前缀
- 使用循环语句,重复检测目标并记录mac地址,主机地址为1-254
- 通过awk命令过滤出/etc/ethers文件中的所有ip地址,赋值给变量,使用循环语句,读取变量中的ip地址,重复探测ftp开启情况
#!/bin/bash#测试文件是否存在,若存在,就将当前文件备份[ -f /etc/ethers ]if [ $? -eq 0 ]thencp -p /etc/ethers /etc/ethers.bakfi#去ping254个地址,将成功的ip地址和mac追加到/ethersfor ((i=134;i<=139;i++))do ping -c 3 -w 3 192.168.247.$i &> /dev/null if [ $? -eq 0 ] then echo "192.168.247.$i 存活" fidonearp -n | grep "ether" | awk '{print $1,$3}' > /etc/ethers#检查是否安装nmap扫描软件rpm -q nmapif [ $? -eq 1 ]then yum clean all yum list yum install nmap -y [ $? -eq 0 ] && echo "未安装namp扫描工具,当前已为您安装"fi#检查有哪些ip开启了匿名服务ftp服务,即22端口for a in $(cat /etc/ethers | awk '{print $1}')dom=$(nmap -sT $a -p 21 | awk '/ftp/{print $2}')if [ $m = open ]thenecho "$a 开启ftp服务"fidone三 : 开发系统监控脚本
3.1 企业环境说明
- 某公司随着业务的不断发展,所使用的linux服务器也越来越多。管理员希望编写一个简单的性能监控脚本,放到各服务器中,当监控指标出现异常时发送告警邮件
3.2 需求描述
- 编写名为sysmon.sh的shell监控脚本
- 监控内容包括CPU使用率、内存使用率、根分区的磁盘占用率
- 百分比只精确到个位,如7%、12%、23%等
- 出现以下任意情况时告警:磁盘占用率超过90%、cpu使用率超过80%、内存使用率超过90%,告警邮件通过mail命令发送到指定邮箱
- 结合crond服务,每半个小时执行一次监控脚本
3.3 思路与命令测试
- 分析:监控内容包括cpu使用率、内存使用率、根分区的磁盘占用率
- df命令
- awk命令
- mpstat 命令 (需安装sysstat软件包)
- free命令
- crontab命令
3.4 脚本编程与调试
- 使用df命令提取出根分区的磁盘占用率,赋值给变量DUG
- 使用mpstat命令提取cpu使用率,赋值给变量CUG
- 使用free命令提取出内存使用率,赋值给变量MUG
- 使用if语句判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件;若存在则作为告警邮件发送
- 调试优化并设置crontab计划
#!/bin/bash#/根分区的当前占用率DUG=$(df -Th | grep '/$' | awk '{print $6}' | sed 's/%//')#cpu 的当前空闲占用率CUG=$(mpstat | grep 'all' | awk '{print $13}' | awk -F. '{print $1}')#内存当前占用率used=$(free | grep 'Mem' | awk '{print $3}')total=$(free | grep 'Mem' | awk '{print $2}')(( MUG = used*100/total))genfenquzhanyong=当前根磁盘占用未到警戒线20%cpukongxian=当前cpu空闲资源未低于警戒线1%neicunzhanyong=当前内存占用未超过警戒线10%#当根分区占用率超过10时if [ $DUG -gt 10 ]thenecho `date` >> /tmp/alert.txtecho "当前磁盘占用超过10%" >> /tmp/alert.txtgenfenquzhanyong='当前根磁盘占用超过警戒线20%,为$DUG%'fi#当cpu的空闲内存小于20时if [ $CUG -lt 1 ]thenecho `date` >> /tmp/alert.txtecho "当前cpu空闲资源小于1%" >> /tmp/alert.txtcpukongxian='当前cpu空闲资源低于警戒线1%,为$CUG'fiif [ $MUG -gt 10 ]thenecho `date` >> /tmp/alert.txtecho "当前内存占用超过10%" >> /tmp/alert.txtneicunzhanyong='当前内存占用超过警戒线10%,为$MUG'firpm -q expectif [ $? -ne 0 ]thenyum install expect -yfiecho "$genfenquzhanyong,$cpukongxian,$neicunzhanyong" | mail "965483130@qq.com"[root@localhost ~]# crontab -e -u root[root@localhost ~]# crontab -l30 * * * * /usr/bin/sh /root/sysmon.sh
命令
地址
脚本
文件
服务
内存
监控
使用率
用率
测试
变量
磁盘
编程
警戒线
语句
警戒
主机
空闲
端口
脚本编程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网与科技
互联网科技工作委员会
为想互联网科技怎么样
科技与互联网
高科技与互联网
紫鲸互联网科技
卓越科技(互联网 )
互联网科技ppt模板
科技大学互联网专业好不好
互联网软件和科技
华夏恒生科技与互联网科技
山东有哪些互联网科技公司
元气玛特互联网科技公司是外包吗
张家口科技产业互联网平台
第三届互联网大会安防黑科技
青岛易易互联网科技
上海旺乐尼互联网科技有限公司
伍佰万互联网科技是干嘛的
每日互联网科技新闻
互联网 科技节活动 微视频大赛
河南云网互联网络科技有限公司
广州紫鲸互联网科技有限公司
科技互联网政务服务
互联网科技革命
极限挑战互联网科技
互联网巨头投资的硬核科技
广州优美互联网科技
互联网科技和信息
互联网相关科技技术
北京品多多互联网科技有限公司