实操 : shell编程实战
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,前言mac记录与端口扫描脚本开发系统监控脚本一 : 脚本编程步骤分享1.1 脚本编程步骤1.2 需求分析根据系统管理的需求,分析脚本要实现的功能、功能实现的层次、实现的命令与语句等1.3 命令测试将要
千家信息网最后更新 2025年12月02日实操 : 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安全错误
数据库的锁怎样保障安全
检查数据库是否启动在哪
网络技术兼职网站
思科网络技术学院官ccna
成功入侵服务器
朝阳区网络营销软件开发职责
如何规划云数据库
战地一国人服务器
网络安全 有哪些证书
吉林大学珠海学院网络安全
四川数据库外泌体价格
内网数据库外网web服务
数据库的列变为行
海珠软件开发院校中专
软件开发在现代科技中的作用
我的世界多人服务器地址
无法访问局域网服务器
神雕侠侣2几个区一个服务器
网络技术88hack
荆州市中联软件开发有限公司
未来旅游业与移动网络技术
合肥市网络安全产业
魔兽世界斯提克斯服务器
海州区智能网络技术创新服务
数据库原理第5版pdf
河南国安网络技术服务
江苏计算机网络技术定制价格
软件工程数据库技术
北京软件开发公司电话
高防服务器介绍
电脑端如何进行网络安全防护