SHELL作业

server/2024/11/24 4:44:40/

要求:

通过shell脚本分析部署nginx网络服务
1.接收用户部署的服务名称
2.判断服务是否安装
​ 已安装;自定义网站配置路径为/www;并创建共享目录和网页文件;重启服务
​ 没有安装;安装对应的软件包
3.测试
判断服务是否成功运行;
​ 已运行,访问网站
​ 未运行,提示服务未启动,并显示自定义的配置文件内容
4.以上配置没有问题,发送邮件

配置:

关闭防火墙

systemctl stop firewalld

setenforce 0

接收用户部署的服务名称

read -p "输入服务名:" service_name

判断服务是否安装

if which nginx &>/dev/null; then
        echo "nginx已安装."
else
        echo "nginx未安装 开始安装."
        mount /dev/sr0 /mnt
        dnf install nginx -y
fi

自定义网站配置路径为/www 并创建共享目录和网页文件 重启nginx

if which nginx &>/dev/null; then
        web_path="/www"
        mkdir -p $web_path
        nginx_config="/etc/nginx/conf.d/test.conf"
        cat > $nginx_config << EOF
        server {
                listen 80;
                root $web_path;
        }
EOF
        touch $web_path/index.html
        echo "test" > $web_path/index.html
        systemctl restart nginx
fi

创建共享目录 (rpm检查nfs安装情况)并重启nfs

if rpm -q nfs-utils &>/dev/null; then
        nfs_path="/pub"
        mkdir -p $nfs_path
        touch $nfs_path/{1..10}
        chmod o+w $nfs_path
        echo " $nfs_path *(rw) " >> /etc/exports
        systemctl restart nfs-server
fi

发邮件(s-nail)


if [[ $? -eq 0 ]]; then
        echo "服务成功运行."
        echo "发送邮件..."
        echo "test" | s-nail -s "nginx作业 psc" -a "$0" lxx1065372838@163.com
else
        echo "服务运行失败."
fi

完整代码

测试:

访问网站

给自己163邮箱发送测试


http://www.ppmy.cn/server/144436.html

相关文章

LangChain入门

LangChain入门 &#xff5c; 豆包MarsCode AI 刷题 本篇文章为《LangChain 实战课》前三节课的总结性文章&#xff0c;主要内容包含内容梳理与总结&#xff0c;学习记录&#xff0c;以及一些思考。 01开篇词&#xff5c;带你亲证AI应用开发的“奇点”时刻 内容 这篇文章介绍…

知从科技加入SOAFEE组织,携手推动汽车软件创新

在汽车行业迈向智能化、网联化的关键时期&#xff0c;知从科技受ARM邀请正式加入 SOAFEE&#xff08;Scalable Open Architecture for Embedded Edge - 面向嵌入式边缘的可扩展开放架构&#xff09;组织&#xff0c;这一战略举措标志着知从科技在全球汽车软件领域的进一步扩展和…

MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份

昨天&#xff08;2024/11/18)碰到这么个问题&#xff0c;因为要控制成本&#xff0c;公司只愿意出两台服务器&#xff08;很小的盒子&#xff09;部署业务&#xff0c;采用传统的主备模式。这其中就包括Mongodb数据库&#xff0c;最稳固的方法当然是采用官方推荐的最低3台。但没…

网络协议之FTP

一、背景介绍 FTP&#xff0c;全称为文件传输协议&#xff08;File Transfer Protocol&#xff09;&#xff0c;是一种用于在网络上进行文件传输的协议。它是互联网上最早出现的文件传输标准之一&#xff0c;使用广泛且成熟稳定。FTP协议通过客户端和服务器之间的交互&#xf…

.net6 使用 FreeSpire.XLS 实现 excel 转 pdf - docker 部署

FreeSpire.XLS && Aspose.Cells包都可以实现。实现过程中发现如下问题&#xff1a; 本地测试通过&#xff0c; docker部署服务器后报错&#xff1a; The type initializer for Spire.Xls.Core.Spreadsheet.XlsPageSetupBase threw an exception. 由于缺少依赖&#xf…

区块链安全常见的攻击——不安全的 Delegatecall 漏洞(Unsafe Delegatecall Vulnerability)【3】

区块链安全常见的攻击合约和简单复现&#xff0c;附带详细分析——不安全的 Delegatecall 漏洞&#xff08;Unsafe Delegatecall Vulnerability&#xff09;【3】 1、不安全的 Delegatecall 漏洞&#xff08;Unsafe Delegatecall Vulnerability&#xff09; 1.1 漏洞合约 co…

aws配置飞书告警通知

serverless 创建应用 在 SAR 中搜索 Feishu-notifier 查到本应用&#xff08;注意因为本项目会创建 EventBridge 到 SNS Publish 权限&#xff0c;按下图进行勾选 Eventbridge 规则 cloudwatch 告警 {"detail-type": ["CloudWatch Alarm State Change"],…

Unity 事件处理的几种方式

//Unity 事件处理的几种方式 //1 通过编辑器绑定方式 //2&#xff1a;addlistener //3:实现接口 //4&#xff1a;自定义框架 using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems;nam…