shell 脚本
一、什么是 SHELL 脚本?
Shell 脚本(shell script)就是将要执行的命令按顺序保存到一个文本文件,并
给该文件可执行权限,方便一次性执行的一个程序文件。主要是方便管理员进行设
置或管理,可结合各种 shell 控制语句以完成更复杂的操作。常用于重复性操作、
批量事物处理、自动化运维、服务运行状态监控、定时任务执行等
二、shell 脚本编写
1.1 shell 脚本格式
1、创建 shell 脚本以.sh 结尾
2、第一行指定 shell 解释器,以#!开头,后面跟 shell 解释器绝对路径
3、第二行写注释,注释以#开头,注释包括作者,时间以及脚本作用
4、最后编写 shell 命令
5、如果脚本比较复杂,请填写注释
1.2 编写端口扫描脚本
nmap 是 linux 下的网络扫描和嗅探工具,需要安装 nmap 软件包 (yum install -y nmap)
命令格式:nmap [选项] 目标 ip/网段
-sT:TCP 连接扫描,不安全,慢
-sS:SYN 扫描,使用最频繁,安全,快
-Pn:目标机禁用 ping,绕过 ping 扫描
-sU:UDP 扫描,慢,可得到有价值的服务器程序
-sA:检测哪些端口被屏蔽
-p:对指定端口扫描
-sP:主机存活性扫描,arp 直连方式
-f:使用小数据包发送,避免被识别出
三、编写端口扫描脚本 (简单的)
[root@localhost ~]# vim nmap.sh
#!/bin/bash 作用:指定脚本使用 Bash 解释器执行。 #by Mr.sun 作用:注释,说明脚本作者是 Mr.sun。 #nmap script 作用:注释,说明这是一个用于端口扫描的 Nmap 脚本。 #2025 年 5 月 7 日 18:11:08 作用:注释,记录脚本的创建时间。 ip="192.168.1.12" # 定义目标 IPecho "########################$ip############################" >> /root/nmap.log echo $(date "+%x%X") >> /root/nmap.log nmap -sS $ip >> /root/nmap.log
(作用:将包含变量 $ip 的字符串追加到日志文件 /root/nmap.log 中。)
(作用:将当前日期和时间(格式如 06/30/202216:11:08)追加到日志文件。(作用:执行 Nmap 的 SYN 扫描(半开扫描),扫描目标 IP 192.168.1.12,并将结果追加到日志文件。)
执行脚本
四、编写端口扫描脚本 (根据简单加强的)
[root@localhost ~]# vim nmap.sh
#!/bin/bash
ip="192.168.1.10"
datetime=$(date "+%x%X")
logfile=/root/nmap.log
echo "##############$ip##############" >> $logfile
echo $datetime >> $logfile
nmap -sS $ip >> $logfile
echo "scan successful!!!"
echo "" >> $logfile
执行脚本
scan successful!!!