实操 : shell编程实战
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,前言mac记录与端口扫描脚本开发系统监控脚本一 : 脚本编程步骤分享1.1 脚本编程步骤1.2 需求分析根据系统管理的需求,分析脚本要实现的功能、功能实现的层次、实现的命令与语句等1.3 命令测试将要
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
数据库语句验证测试
服务器运营维护管理制度
猫猫软件开发
大学考试题 网络技术
javaweb显示数据库
杭州数据网络技术市场价格
污点艺人数据库名单
河南放心软件开发服务值得推荐
江门网站建设服务器
静安区品质网络技术费用
邯郸安卓软件开发哪家便宜
凯金锐是软件开发吗
互联网软件开发时代
软件开发费用汇款
福田区软件开发公司
什么cpu支持服务器内存
网络安全待遇002020
数据库连接时是lnk什么意思
广州市尚高软件开发有限公司
企业网络安全会议通知
华为软件开发云西安上线
入门级服务器可以运行PS吗
网络安全法方面的论文
inux服务器测试
广东企业软件开发哪家可靠
linux提取某几行数据库
华为云的云数据库怎么样
部队网络安全保密教育提纲
keo游戏服务器关了么
湖南专业网络技术代理商