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

服务器作业4

[root@localhost ~]# vim 11.sh

#关闭防火墙

systemctl stop firewalld
setenforce  0


#1.接收用户部署的服务名称
read -p "服务名称:(nginx)" server_name
if [ $server_name != nginx ];then
    echo "输入的不是nginx,脚本退出"
    exit 1
fi


# 判断是否安装了指定服务

#command -v和rpm -q 可能无法精确识别服务是否安装,可能是已经安装识别为未安装

#可能未安装识别为已安装

#上面两个命令应该是可以识别,但不知道为什么无法像which一样精确识别

#systemctl status 服务名:当服务未安装是,返回会显示Unit [服务名].service could not be found.

#a=`systemctl status $server`
#if [ $a ==  "Unit $server.service could not be found." ];

#这个命令可能出现“==”号附近会报错

#或者无法精确识别
#if `command -v $service_name &>/dev/null`; then
#if `rpm -q  $service_name &>/dev/null`; then

#&>:是一种重定向操作符。它将标准输出(stdout)和标准错误输出(stderr)合并到一起进行重定向

#which nginx &>/dev/null:这个命令主要用于检查系统中是否能找到nginx命令,并且在检查过程中不显示任何与查找相关的输出内容,脚本可以根据这个命令的退出状态码(如果能找到nginx命令,退出状态码为 0;否则为非 0)来进一步判断nginx是否已安装或者在系统路径中有正确的配置

if which nginx &>/dev/null; then

    #已安装;自定义网站配置路径为/www;并创建共享目录和网页文件;重启服务
        echo "nginx已安装"
        #web_path配置路径
        web_path="/www"
        mkdir -p $web_path
        #配置文件路径
        config_path="/etc/nginx/conf.d"
        #配置文件
        touch $config_path/new_test.conf
        config_path_file="$config_path/new_test.conf"
#配置文件配置

#通过

#cat << EOF > 文件名

#内容

#EOF

#的方式向文件中写入内容
cat << EOF > $config_path_file
server{
        listen 80;
        root $web_path;

}

EOF
        # 创建共享目录和网页文件
        #共享目录
        shared_path="$web_path/shared"
        mkdir -p $shared_path
        #网页文件
        #往网页文件里写入内容,测试用
        echo "this is a test" > $web_path/index.html
        #重启nginx服务
        systemctl restart $server_name
else
    echo "nginx未安装"
    mount /dev/sr0 /mnt
        dnf install nginx -y
        echo "nginx安装成功"
        #web_path配置路径
        web_path="/www"
        mkdir -p $web_path
        #配置文件路径
        config_path="/etc/nginx/conf.d"
        #配置文件
        touch $config_path/new_test.conf
        config_path_file="$config_path/new_test.conf"
#配置文件配置
cat << EOF > $config_path_file
server{
        listen 80;
        root $web_path;

}

EOF
        # 创建共享目录和网页文件
        #共享目录
        shared_path="$web_path/shared"
        mkdir -p $shared_path
        #网页文件
        #往网页文件里写入内容,测试用
        echo "this is a test" > $web_path/index.html
        #重启nginx服务
        systemctl restart $server_name


fi
# 测试服务是否成功运行

#systemctl is-active 服务名

#查看服务是否运行,如果运行返回“active”
live=`systemctl is-active $server_name`
if [ $live == active ];then
    echo "服务成功运行,下面是网站内容"
#已运行,访问网站
    curl `hostname -I`
else
#未运行,提示服务未启动,并显示自定义的配置文件内容
    echo "服务未启动"
    echo "下面是nginx主配置文件内容"

#cat 文件名

#查看文件内容
    cat $config_path_file
fi

echo "我是柏益伟" | mail -s "作业4" -a 11.sh 15380914067@163.com

邮箱配置:
#挂载
[root@localhost ~]# mount /dev/sr0 /mnt
#安装s-nail邮箱服务
[root@localhost ~]# dnf install s-nail -y
#在配置文件的末尾添加配置
[root@localhost ~]# vim /etc/s-nail.rc 

############################
#网易邮箱@163.com
#smtp-auth-password要开启网易邮箱的IMAP/SMTP服务,得到的授权码
set  from=15380914067@163.com
set  smtp=smtp.163.com
set  smtp-auth-user=15380914067@163.com
set  smtp-auth-password=JBntypapSgHPrMX5
set  smtp-auth=login
#                                         自己的邮箱

命令格式:

 #-a  文件名;把文件发送通过邮箱发送

echo "我是柏益伟" | mail -s "作业4" -a 11.sh 15380914067@163.com

相关文章:

服务器作业4

[rootlocalhost ~]# vim 11.sh #关闭防火墙 systemctl stop firewalld setenforce 0 #1.接收用户部署的服务名称 read -p "服务名称:(nginx)" server_name if [ $server_name ! nginx ];then echo "输入的不是nginx,脚本退出" exit 1 fi # 判断是…...

IOC控制反转---相关的介绍和6大注解解读(类注解+方法注解)

文章目录 1.传统方式造车2.传统方法的弊端3.IOC的引入3.IOC对于图书管理系统进行改进&#xff08;初识&#xff09;4.注解的使用说明4.1controller注解4.2service注解4.3component注解4.4关于spring命名的问题4.5component重命名4.6repository注解4.7configuration注解4.8注解之…...

SpringBoot(8)-任务

目录 一、异步任务 二、定时任务 三、邮件任务 一、异步任务 使用场景&#xff1a;后端发送邮件需要时间&#xff0c;前端若响应不动会导致体验感不佳&#xff0c;一般会采用多线程的方式去处理这些任务&#xff0c;但每次都需要自己去手动编写多线程来实现 1、编写servic…...

【机器学习】如何配置anaconda环境(无脑版)

马上就要上机器学习的实验&#xff0c;这里想写一下我配置机器学习的anaconda环境的二三事 一、首先&#xff0c;下载安装包&#xff1a; Download Now | Anaconda 二、打开安装包&#xff0c;一直点NEXT进行安装 这里要记住你要下载安装的路径在哪&#xff0c;后续配置环境…...

java 可以跨平台的原因是什么?

我们对比一个东西就可以了&#xff0c;那就是chrome浏览器。 MacOS/Linux/Windows上的Chrome浏览器&#xff0c;那么对于HTML/CSS/JS的渲染效果都一样的。 我们就可以认为ChromeHTML/CSS/JS是跨平台的。 这里面&#xff0c;HTML/CSS/JS是不变的的&#xff0c;对于一个网页&a…...

Solana应用开发常见技术栈

编程语言 Rust Rust是Solana开发中非常重要的编程语言。它具有高性能、内存安全的特点。在Solana智能合约开发中&#xff0c;Rust可以用于编写高效的合约代码。例如&#xff0c;Rust的所有权系统可以帮助开发者避免常见的内存错误&#xff0c;如悬空指针和数据竞争。通过合理利…...

npm | Yarn | pnpm Node.js包管理器比较与安装

一、包管理器比较 参考原文链接&#xff1a; 2024 Node.js Package Manager 指南&#xff1a;npm、Yarn、pnpm 比较 — 2024 Node.js Package Manager Guide: npm, Yarn, pnpm Compared (nodesource.com) 以下是对 Node.js 的三个包管理工具 npm、Yarn 和 pnpm 的优缺点总结&am…...

Linux下编译MFEM

本文记录在Linux下编译MFEM的过程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1Boost1.74.0oneAPI2024.2.1 一、安装依赖 二、编译代码 附录I: CMakeUserPresets.json {"version": 4,"configurePresets": [{&quo…...

【团购核销】抖音生活服务商家应用快速接入②——商家授权

文章目录 一、前言二、授权流程三、授权Url3.1 Url参数表3.2 授权能力表3.3 源码示例 四、授权回调4.1 添加授权回调接口4.2 授权回调接口源码示例 五、实际操作演示六、参考 一、前言 目的&#xff1a;将抖音团购核销的功能集成到我们自己开发的App和小程序中 【团购核销】抖音…...

django宠物服务管理系统

摘 要 宠物服务管理系统是一种专门为宠物主人和宠物服务提供商设计的软件。它可以帮助用户快速找到附近的宠物医院、宠物美容店、宠物寄养中心等服务提供商&#xff0c;并预订相关服务。该系统还提供了一系列实用的功能。通过使用宠物服务管理系统&#xff0c;用户可以更加方便…...

vue2中使用three.js步骤

1.使用npm 下载依赖这里以0.158.0版本为例 npm install three0.158.0 --save 2. <template><div id"container"></div> </template><script> import * as THREE from three; import { OBJLoader } from three/examples/jsm/loaders/O…...

部落商城App开发笔记 2024.11.21 实现进入app就是短视频

初步效果: 基于图鸟UI二次开发, 这里静态资源没有加载, 我在本机上安装了一个nginx, 需要启动一下. PS C:\dev\nginx-1.26.2> start .\nginx.exe重新刷新就有数据了. 先看看目前的页面吧. 首页. 分类: 发现. 消息. 购物车. 我的. 这个项目是有短视频的功能…...

解决.DS_Store 在项目一致无法排除,.gitignore里也不生效

.DS_Store 是 macOS 操作系统创建的隐藏文件&#xff0c;通常用于存储目录的属性&#xff0c;比如视图设置、图标位置等。它通常不应包含在代码仓库中&#xff0c;因此需要排除它。你提到即使将其添加到 .gitignore 文件中&#xff0c;仍然无法排除它&#xff0c;可能是由于以下…...

MySQL-关键字执行顺序

&#x1f496;简介 在MySQL中&#xff0c;SQL查询语句的执行遵循一定的逻辑顺序&#xff0c;即使这些关键字在SQL语句中的物理排列可能有所不同。 &#x1f31f;语句顺序 (8) SELECT (9) DISTINCT<select_list> (1) FROM <left_table> (3) <join_type> JO…...

极客时间《Redis核心技术与实战》开篇词 知识点总结

Redis 主要的数据持久化方式 RDB&#xff08;Redis Database Backup file&#xff09; RDB 是 Redis 提供的一种数据快照持久化方式&#xff0c;它会在指定的时间间隔内生成数据集的时间点快照&#xff0c;并将这些快照保存到磁盘上的一个 RDB 文件中。RDB 文件是一个压缩的二…...

TCP并发服务器

端口号快速复用函数 通过getsockopt和setsockopt函数&#xff0c;管理套接字的端口号复用设置。具体操作如下&#xff1a; getsockopt函数 int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);功能&#xff1a;获取套接字的某些选项的属性。…...

Debug-031-近期功能实现小结

由于时间原因&#xff0c;没办法对每个小的功能点进行比较细致的总结&#xff0c;这里统一去记录一下最近的实现了的功能&#xff0c;算是存档备份&#xff0c;为今后开发带来便利和参考。 一、ACEeditor ACEeditor使用手册&#xff08;一&#xff09;_ace editor-CSDN博客 AC…...

Consumer Group

不&#xff0c;kafka-consumer-groups.sh 脚本本身并不用于创建 Consumer Group。它主要用于管理和查看 Consumer Group 的状态和详情&#xff0c;比如列出所有的 Consumer Group、查看特定 Consumer Group 的详情、删除 Consumer Group 等。 Consumer Group 是由 Kafka 消费者…...

.NET架构师学习大纲

目录 微服务 Consul Ocelot Polly Skywalking Exceptionless Apollo Jenkins Docker Kubernetes DDD领域驱动设计 DevOps CDN Nginx 应用服务器集群 数据库高可用 异步化架构 Azure前沿技术 工具排查 O/RM-EFCore IOC&AOP Core WebApi WebServer 数…...

【代码随想录】贪心

455. 分发饼干 题目 随想录 本质&#xff1a; 对于每个孩子&#xff0c;使用可以满足该孩子的最小的饼干。所以对孩子胃口和饼干进行sort排序&#xff0c;依次将大的饼干满足给孩子。 贪心策略&#xff1a; 想一下局部最优&#xff0c;想一下全局最优&#xff0c;如果局部最优…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...