当前位置: 首页 > article >正文

shell--第一次作业

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
 

 邮箱配置


http://www.kler.cn/a/406418.html

相关文章:

  • transformer.js(一):这个前端大模型运行框架的可运行环境、使用方式、代码示例以及适合与不适合的场景
  • Ubuntu ESP32开发环境搭建
  • 组会 | 大语言模型 + LoRA
  • css iframe标签使用
  • 时间操作[计算时间差]免费API接口教程
  • 【倍数问题——同余系】
  • 微信小程序组件详解:text 和 rich-text 组件的基本用法
  • 定长滑动窗口基础模板题:LeetCode——2379.得到K个黑块的最少涂色次数和643.子数组最大平均数 1
  • 数据结构-树状数组专题(2)
  • 商业物联网:拥抱生产力的未来
  • 2024年9月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析
  • 基于Java Springboot旅游民宿信息管理系统
  • Linux 进程概念与进程状态
  • Elasticsearch实战应用:构建高效搜索与分析平台
  • nodejs基于微信小程序的云校园的设计与实现
  • AFSim脚本学习
  • 未来已来:少儿编程竞赛聚焦物联网,激发创新潜力
  • vue3-基于element-plus实现定制化动态表单及校验
  • CentOS使用中遇到的问题及解决方法
  • java的强,软,弱,虚引用介绍以及应用
  • 提供一个集中式的数字媒体模板库,涵盖各类设计模板(如海报、视频片头、社交媒体帖子等),支持关键词、标签、风格等多维度搜索,帮助用户快速定位所需模板。
  • 【.ner core】 配置使用百度编辑器
  • JavaScript中的this指向问题
  • 容器安全检测和渗透测试工具
  • 成都栩熙酷,电商服务新选择
  • 【SQL Server】华中农业大学空间数据库实验报告 实验七 数据查询