自学内容网 自学内容网

通过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


原文地址:https://blog.csdn.net/qq_73175276/article/details/143832590

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!