通过shell脚本分析部署nginx网络服务
作业:
1.接收用户部署的服务名称
2.判断服务是否安装
已安装;自定义网站配置路径为/www;并创建共享目录和网页文件;重启服务
没有安装;安装对应的软件包
3.测试
判断服务是否成功运行;
已运行,访问网站
未运行,提示服务未启动,并显示自定义的配置文件内容
4.以上配置没有问题,请邮件告知我,并将脚本代码(代码文件)邮件发送我
我的邮箱账号:lxx1065372838@163.com
知识点:
运算符 | 说明 布尔符 | 举例 |
---|---|---|
&& | 逻辑的 AND -a | [[ $a -lt 100 && $b -gt 100 ]] 返回 false |
|| | 逻辑的 OR -o | [[ $a -lt 100 || $b -gt 100 ]] 返回 true |
! | 非 ! | not,非,两端相反,则结果为真 |
单分支
if条件;then
语句
fi
--------------------------
if 条件;then
语句
fi
双分支
if 条件;then
成立语句
else
不成立语句
fi
多分支结构
if 条件1;then
成立语句
elif 条件2;then
成立语句
elif...
...
else
fi
case 情景分析语句(条件判断)
case 变量名 in
值1)
成立语句
;;
值2)
成立语句
;;
...
*)
成立语句
;;
case
测试
- 接收用户部署的服务名称
read -p "请输入要判断的程序名称:" service_name
count=`ps -aux | grep -cw $service_name`
- 判断服务是否安装
if [ command -v $service_name &>/dev/null ];
then
echo "$service_name 已安装"
config_path="/www"
shared_dir="/www/shared"
index_file="$shared_dir/index.html"
echo "设置自定义网站配置路径为$config_path"
mkdir -p $shared_dir
echo "欢迎访问$service_name服务" > $index_file
echo "$service_name主页文件已创建:$index_file"
if [[ "$service_name" == "nginx" ]];
then
nginx_config="/etc/nginx/conf.d/default.conf"
echo "server {
listen 80;
server_name localhost;
root$shared_dir;
index index.html;
}">$nginx_config
echo "Nginx配置已更新:$nginx_config"
fi
systemctl restart $service_name
echo "重启服务"
else
echo "$service_name未安装,请开始安装"
dnf install $service_name -y
echo "安装完成"
fi
- 判断服务是否成功运行
#!/bin/bash
read -p "请输入要判断的程序名称:" service_name
count=`ps -aux | grep -cw $service_name`if [ $count -gt 1 ] ;then
echo 服务已经运行
else
echo 服务还未运行
fi
-
邮件发送
if [[ $? -eq 0 ]]; then
echo "脚本执行成功,配置无问题。"
echo "发送脚本文件到指定邮箱..."
mail -s "Nginx 部署脚本" -a "$0" lxx1065372838@163.com <<< "Nginx 部署脚本已完成,请查收。"
else
echo "脚本执行失败,请检查相关日志。"
fi
开始实现
# cd /day04
vim 6.sh
bash 6.sh