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

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
 

 邮箱配置

相关文章:

shell--第一次作业

1.接收用户部署的服务名称 # 脚本入口 read -p "请输入要部署的服务名称&#xff1a;" service_name 2.判断服务是否安装 # 判断服务是否安装 if rpm -q "$service_name" &>/dev/null; then echo "服务 $service_name 已安装。" 已…...

Rust:原子操作 AtomicBool

在 Rust 中&#xff0c;你可以使用 std::sync::atomic 模块来进行原子操作。原子操作在多线程环境中特别有用&#xff0c;因为它们可以确保操作的原子性和可见性&#xff0c;从而避免数据竞争和其他并发问题。 为了读取和设置布尔值&#xff0c;你可以使用 AtomicBool 类型。以…...

深入浅出学算法002-n个1

任务内容 Description 由n个1组成的整数能被K&#xff08;K<10000)整除&#xff0c;n至少为多少&#xff1f; Input 多组测试数据&#xff0c;第一行输入整数T,表示组数 然后是T行&#xff0c;每行输入1个整 数代表K Output 对于每组测试数据输出1行&#xff0c;值为n Sampl…...

GPT1.0 和 GPT2.0 的联系与区别

随着自然语言处理技术的飞速发展&#xff0c;OpenAI 提出的 GPT 系列模型成为了生成式预训练模型的代表。作为 GPT 系列的两代代表&#xff0c;GPT-1 和 GPT-2 虽然在架构上有着继承关系&#xff0c;但在设计理念和性能上有显著的改进。本文将从模型架构、参数规模、训练数据和…...

STM32F103 GPIO和串口实战

本节我们将会对STM32F103的硬件资源GPIO和串口进行介绍。 一、GPIO 1.1 电路原理图 LED电路原理图如下图所示&#xff1a; 其中&#xff1a; LED1连接到PA8引脚&#xff0c;低电平点亮&#xff1b;LED2连接到PD2引脚&#xff0c;低电平点亮&#xff1b; 1.2 GPIO引脚介绍 STM32…...

Go 并发

Go 并发 Go 语言,自2009年发布以来,以其独特的并发模型和简洁的语法在编程界崭露头角。Go 语言的并发机制是其最大的亮点之一,它通过轻量级的线程——goroutine,以及通道(channel)和同步原语,为开发者提供了一种高效、易用的并发编程方式。 Goroutine:Go 语言的并发基…...

C语言数据结构与算法--简单实现栈的出栈与入栈

&#xff08;一&#xff09;栈的基本概念 栈(Stack)是限定仅在表尾进行插入和删除操作的线性表&#xff0c;如铁路调度。如下 图&#xff1a; &#xff08;二&#xff09;栈的的表现形式 栈有两种表示形式&#xff1a;栈的表示和实现、栈的 链式表示。 1&#xff0e;栈的表示和…...

单片机智能家居火灾环境安全检测-分享

目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 电路图采用Altium Designer进行设计&#xff1a; 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 传统的火灾报警系统大多依赖于简单的烟雾探测器或温度传感器&#xff0c;…...

python FastAPI 后台运行

最近需要用python把AI的能力封装起来&#xff0c;通过暴露API的方式供别的服务来调用。整体的想法是&#xff0c;选择对应接口&#xff0c;接口读取传入的sql语句&#xff0c;自动去数据库读取数据&#xff0c;运算后将结果在存放在数据库中。 搭建FastAPI框架&#xff0c;由于…...

Java开发者必备:23种设计模式全面解析

文章目录 一、创建型模式1、工厂模式简单工厂工厂方法 2、抽象工厂模式3、原型模式4、建造者模式5、单例模式 二、结构型模式1、适配器模式2、桥接模式3、组合模式4、装饰模式5、外观模式6、享元模式7、代理模式 三、行为型模式1、解释器模式2、模板方法模式3、策略模式4、观察…...

编译OpenWrt步骤

实验平台搭建 硬件平台&#xff1a;hilink-7628n核心板 宿主机系统&#xff1a;ubuntu20.04 server 宿主机安装所需工具&#xff1a; binutils bzip2 diff find flex gawk gcc-6 getopt grep install libc-dev libz-dev make4.1 perl python3.7 rsync subversion unzip whi…...

Linux:confluence8.5.9的部署(下载+安装+pojie)离线部署全流程 遇到的问题

原文地址Linux&#xff1a;confluence8.5.9的部署&#xff08;下载安装破ji&#xff09;离线部署全流程_atlassian-agent-v1.3.1.zip-CSDN博客 背景&#xff1a;个人使用2核4g 内存扛不住 总是卡住&#xff0c;但是流程通了所以 直接公司开服务器干生产 个人是centos7 公司…...

✅✅✅【Vue.js】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本

api.js //封装ajax方法 import $g from "../sg";//vue项目使用 import $ from jquery;//(提示&#xff1a;原生开发页面请前往https://jquery.com下载最新版jQuery) import { Message } from "element-ui";//element项目使用 // import axios from "…...

axios 请求跨域问题

文章目录 1. 使用场景2. 解决办法 1. 使用场景 ① 编写后端测试接口&#xff0c;Vue-CLI 的默认端口为 8080&#xff0c;所以为避免端口冲突&#xff0c;我们后端的端口号换成 8081。 ② 前端通过 axios 向后端服务发起请求。 <script> import axios from axios export…...

什么是 Faiss?

好的&#xff0c;我来详细解释 Faiss&#xff0c;它的用途、使用场景&#xff0c;以及如何安装和使用。 什么是 Faiss&#xff1f; Faiss 是由 Facebook AI Research 开发的一个开源库&#xff0c;专门用于高效的相似性搜索和聚类。它非常擅长在高维向量空间中进行快速搜索&a…...

24.UE5枚举,怪物分类,龙卷风技能

2-26 枚举、怪物分类、龙旋风技能、掉落概率_哔哩哔哩_bilibili 目录 1.枚举 1.1枚举类型的创建 1.2 将枚举类型绑定到怪物蓝图上 1.3枚举类型的使用 1.3.1创建新的掉落物 1.3.2更改怪物掉落逻辑 2.龙卷风技能 2.1输入映射 2.2龙卷风发射物的创建 2.3龙卷风伤害逻辑…...

什麼是ISP提供的公共IP地址?

公共IP地址是ISP分配給設備或網路的全球唯一地址。此地址允許通過互聯網識別和訪問設備。ISP提供的公共IP地址具有幾個關鍵特徵&#xff1a; 1.每個公網IP在全球網路內都是唯一的&#xff0c;避免衝突。 2. 公共 IP 地址對其他網路可見&#xff0c;並且可用於地理定位設備。 …...

git操作总结

git基本知识 工作区域 远程仓库&#xff1a; 就是我们托管在github或者其他代码托管平台上的仓库。本地仓库&#xff1a; 就是在我们本地通过git init命令初始化的新建的仓库。工作区&#xff1a; 就是我们写代码、编辑文件的地方。暂存区&#xff1a; 当工作区的内容写好了之…...

CompressAI安装!!!

我就不说废话了&#xff0c;直接给教程&#xff0c;还是非常简单的 但是我看了好多帖子&#xff0c;都没有说明情况 一定要看最后最后的那个注释 正片开始&#xff1a; 一共有三种方式&#xff1a; 第一种就是本机安装&#xff1a; 在网址上下载对应版本Links for compre…...

豆包MarsCode算法题:最小周长巧克力板组合

问题描述 思路分析 这道题可以抽象为一个最优化问题&#xff1a; 问题分析 每个正方形的面积为 k &#xff0c;对应的边长为 k &#xff0c;周长为 4k 。给定整数 n &#xff0c;我们需要找到若干正方形&#xff0c;使得它们的面积之和恰好等于 n&#xff1a; 同时尽量最小…...

OpenClaw成本优化:Qwen2.5-VL-7B自部署降低图文任务Token消耗

OpenClaw成本优化&#xff1a;Qwen2.5-VL-7B自部署降低图文任务Token消耗 1. 图文任务Token消耗的痛点 作为长期使用OpenClaw处理图文任务的开发者&#xff0c;我最初依赖云端API完成所有操作。每次执行包含图片识别的任务时&#xff0c;Token消耗就像开了闸的水龙头——一个…...

双极性PWM调速:从占空比到电机转速的闭环控制策略

1. 双极性PWM调速的基本原理 我第一次接触双极性PWM调速是在一个机器人关节控制项目上。当时需要精确控制关节转动角度&#xff0c;但发现简单的开环控制根本无法满足精度要求。这让我深入研究了双极性PWM的工作原理&#xff0c;现在把这些经验分享给大家。 双极性PWM与常见的单…...

别再只当‘信号合并器’了!Bias Tee在5G小基站和毫米波测试中的实战避坑指南

5G时代Bias Tee实战指南&#xff1a;从小基站到毫米波的关键应用与避坑策略 在5G硬件研发的前沿战场上&#xff0c;Bias Tee这个看似简单的三端口器件正扮演着越来越关键的角色。不同于传统认知中的"信号合并器"&#xff0c;现代5G系统对Bias Tee提出了前所未有的性能…...

【数据结构】森林与二叉树的双向转换:原理、步骤与实例

在数据结构的树型结构中&#xff0c;森林与二叉树的转换是一个非常核心的知识点&#xff0c;它不仅是树的存储、遍历的基础&#xff0c;也是很多算法实现的关键。今天我们就从原理、步骤、实例三个维度&#xff0c;彻底搞懂这个转换规则&#xff0c;顺便把树转二叉树的前置知识…...

OpenClaw多任务调度:千问3.5-9B并行处理多个自动化流程

OpenClaw多任务调度&#xff1a;千问3.5-9B并行处理多个自动化流程 1. 为什么需要多任务调度&#xff1f; 去年夏天&#xff0c;我同时接手了三个技术项目&#xff1a;一个爬虫数据清洗任务、一个Markdown文档自动化整理工具&#xff0c;还有一个需要定期检查服务器日志的监控…...

在 openSUSE Tumbleweed 上为 Canon LBP2900 配置网络打印:从驱动安装到 CUPS 调试

1. 准备工作&#xff1a;驱动下载与依赖安装 Canon LBP2900 虽然是一款经典机型&#xff0c;但官方对 Linux 的支持一直比较保守。我去年在给公司部署办公环境时就遇到过这个坑&#xff0c;当时花了两天时间才搞明白驱动安装的门道。首先需要从佳能官网下载专用驱动包&#xff…...

无代码玩法:OpenClaw网页控制台配合Qwen3.5-9B处理电商截图

无代码玩法&#xff1a;OpenClaw网页控制台配合Qwen3.5-9B处理电商截图 1. 为什么选择OpenClaw处理电商截图 作为一个经常网购的技术爱好者&#xff0c;我发现自己经常需要手动整理不同平台的商品价格信息。传统的做法是截图后人工录入Excel&#xff0c;既耗时又容易出错。直…...

Agent 的能力体系

提示词及其能力边界 在将 Agent 具体应用到实际的生产环境中之前&#xff0c;人们首先需要弄清楚的是&#xff1a;提示词在这类应用中的作用到底是什么&#xff1f;它的能力边界在哪里&#xff1f;如果我们在这两个问题上的理解出现了偏差&#xff0c;那么后续所有针对 Agent …...

Whishper自定义配置指南:如何根据需求调整参数实现最佳转录效果

Whishper自定义配置指南&#xff1a;如何根据需求调整参数实现最佳转录效果 【免费下载链接】whishper Transcribe any audio to text, translate and edit subtitles 100% locally with a web UI. Powered by whisper models! 项目地址: https://gitcode.com/gh_mirrors/wh/…...

S7-200 MCGS PLC交通灯系统:详细图纸、IO分配与组态画面解析

S7-200 MCGS 基于PLC的交通灯系统 338 我们主要的后发送的产品有&#xff0c;带解释的梯形图接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面蹲公司楼下刷短视频摸鱼等红灯&#xff0c;数着黄灯那急死人的3秒脑子里突然蹦出来上周刚收尾的S7-200 SMART兼容旧200程序的…...