1.接收用户部署的服务名称
# 脚本入口
read -p "请输入要部署的服务名称:" service_name
2.判断服务是否安装
# 判断服务是否安装
if rpm -q "$service_name" &>/dev/null; then
echo "服务 $service_name 已安装。"
已安装;自定义网站配置路径为/www;并创建共享目录和网页文件;重启服务
# 配置网站路径
web_dir="/www"
shared_dir="$web_dir/shared"
index_file="$web_dir/index.html"echo "配置网站目录:$web_dir"
mkdir -p "$shared_dir"# 创建网页文件
echo "创建网页文件..."
echo "<h1>Welcome to $service_name on $(hostname)</h1>" > "$index_file"# 修改 Nginx 配置文件,指向 /www 目录
conf_file="/etc/nginx/conf.d/custom.conf"
echo "server {
listen 80;
server_name localhost;
root $web_dir;
location / {
index index.html;
}
}" > "$conf_file"# 重启服务
echo "重启 $service_name 服务..."
systemctl restart $service_name
没有安装;安装对应的软件包
else
echo "服务 $service_name 未安装,正在安装..."
yum install -y "$service_name"if [ $? -eq 0 ]; then
echo "服务 $service_name 安装成功。请重新运行脚本完成配置。"
exit 0
else
echo "服务 $service_name 安装失败,请检查网络或软件包。"
exit 1
fi
fi
3.测试
# 测试服务是否成功运行
systemctl is-active $service_name &>/dev/null
if [ $? -eq 0 ]; then
echo "服务 $service_name 已成功运行,访问网站内容:"
curl -s http://localhost
else
echo "服务 $service_name 未启动,显示配置文件内容:"
cat "$conf_file"
fi
4.邮件通知
# 邮件通知
mail_subject="Nginx 服务部署完成通知"
mail_body="您好,Nginx 服务已完成配置并测试成功。配置目录:$web_dir"
mail_attachment="$0"echo "$mail_body" | mail -s "$mail_subject" -a "$mail_attachment" 18362978624@163.com