服务器作业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
fiecho "我是柏益伟" | 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对于图书管理系统进行改进(初识)4.注解的使用说明4.1controller注解4.2service注解4.3component注解4.4关于spring命名的问题4.5component重命名4.6repository注解4.7configuration注解4.8注解之…...
SpringBoot(8)-任务
目录 一、异步任务 二、定时任务 三、邮件任务 一、异步任务 使用场景:后端发送邮件需要时间,前端若响应不动会导致体验感不佳,一般会采用多线程的方式去处理这些任务,但每次都需要自己去手动编写多线程来实现 1、编写servic…...
【机器学习】如何配置anaconda环境(无脑版)
马上就要上机器学习的实验,这里想写一下我配置机器学习的anaconda环境的二三事 一、首先,下载安装包: Download Now | Anaconda 二、打开安装包,一直点NEXT进行安装 这里要记住你要下载安装的路径在哪,后续配置环境…...
java 可以跨平台的原因是什么?
我们对比一个东西就可以了,那就是chrome浏览器。 MacOS/Linux/Windows上的Chrome浏览器,那么对于HTML/CSS/JS的渲染效果都一样的。 我们就可以认为ChromeHTML/CSS/JS是跨平台的。 这里面,HTML/CSS/JS是不变的的,对于一个网页&a…...
Solana应用开发常见技术栈
编程语言 Rust Rust是Solana开发中非常重要的编程语言。它具有高性能、内存安全的特点。在Solana智能合约开发中,Rust可以用于编写高效的合约代码。例如,Rust的所有权系统可以帮助开发者避免常见的内存错误,如悬空指针和数据竞争。通过合理利…...
npm | Yarn | pnpm Node.js包管理器比较与安装
一、包管理器比较 参考原文链接: 2024 Node.js Package Manager 指南: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 授权回调接口源码示例 五、实际操作演示六、参考 一、前言 目的:将抖音团购核销的功能集成到我们自己开发的App和小程序中 【团购核销】抖音…...
django宠物服务管理系统
摘 要 宠物服务管理系统是一种专门为宠物主人和宠物服务提供商设计的软件。它可以帮助用户快速找到附近的宠物医院、宠物美容店、宠物寄养中心等服务提供商,并预订相关服务。该系统还提供了一系列实用的功能。通过使用宠物服务管理系统,用户可以更加方便…...
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 操作系统创建的隐藏文件,通常用于存储目录的属性,比如视图设置、图标位置等。它通常不应包含在代码仓库中,因此需要排除它。你提到即使将其添加到 .gitignore 文件中,仍然无法排除它,可能是由于以下…...
MySQL-关键字执行顺序
💖简介 在MySQL中,SQL查询语句的执行遵循一定的逻辑顺序,即使这些关键字在SQL语句中的物理排列可能有所不同。 🌟语句顺序 (8) SELECT (9) DISTINCT<select_list> (1) FROM <left_table> (3) <join_type> JO…...
极客时间《Redis核心技术与实战》开篇词 知识点总结
Redis 主要的数据持久化方式 RDB(Redis Database Backup file) RDB 是 Redis 提供的一种数据快照持久化方式,它会在指定的时间间隔内生成数据集的时间点快照,并将这些快照保存到磁盘上的一个 RDB 文件中。RDB 文件是一个压缩的二…...
TCP并发服务器
端口号快速复用函数 通过getsockopt和setsockopt函数,管理套接字的端口号复用设置。具体操作如下: getsockopt函数 int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);功能:获取套接字的某些选项的属性。…...
Debug-031-近期功能实现小结
由于时间原因,没办法对每个小的功能点进行比较细致的总结,这里统一去记录一下最近的实现了的功能,算是存档备份,为今后开发带来便利和参考。 一、ACEeditor ACEeditor使用手册(一)_ace editor-CSDN博客 AC…...
Consumer Group
不,kafka-consumer-groups.sh 脚本本身并不用于创建 Consumer Group。它主要用于管理和查看 Consumer Group 的状态和详情,比如列出所有的 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. 分发饼干 题目 随想录 本质: 对于每个孩子,使用可以满足该孩子的最小的饼干。所以对孩子胃口和饼干进行sort排序,依次将大的饼干满足给孩子。 贪心策略: 想一下局部最优,想一下全局最优,如果局部最优…...
ConstraintLayout的‘隐藏技巧’:用百分比、比例和GoneMargin搞定复杂UI适配
ConstraintLayout高级适配技巧:百分比、比例与动态隐藏视图的完美解决方案 在Android开发中,ConstraintLayout已经成为构建复杂界面的首选布局方式。但许多开发者仅仅停留在基础使用层面,未能充分发挥其强大的适配能力。本文将深入探讨三个关…...
书匠策AI:你的论文过不了关?http://www.shujiangce.com这套组合拳直接救场!
开篇一句话:2025年写论文,拼的不是文笔,是"过关能力"。 查重40%以上被打回,AIGC检测疑似度超标被标记——这两座大山压在每个毕业生头上。你是不是也经历过这种绝望:明明每个字都是自己敲的,系统…...
深度解析游戏资源加密机制:构建安全增强模块的完整实现
深度解析游戏资源加密机制:构建安全增强模块的完整实现 【免费下载链接】wuwa-mod Wuthering Waves pak mods 项目地址: https://gitcode.com/GitHub_Trending/wu/wuwa-mod WuWa-Mod作为《鸣潮》(Wuthering Waves)游戏模组开发项目,通过AES加密解…...
大裁员前夜Meta员工疯狂「薅羊毛」;腾讯操作系统层级AI助手“马维斯”正式上工;GitHub确认遭入侵:3800个内部仓库被窃取 | 极客头条
「极客头条」—— 技术人员的新闻圈!CSDN 的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。(投稿或寻求报道:zhanghycsdn.net)整理 | 苏宓出品 | CSDN(ID&…...
MoE大模型核心揭秘:Router路由机制与活跃参数原理
1. 这不是“参数越多越强”的简单故事:拆解大模型里那个被悄悄藏起来的“开关”你肯定见过这类标题:“GPT-4参数量达1.8万亿!”、“DeepSeek-R1狂堆6710亿参数!”——光看数字,像在比谁家粮仓更大。但真正干过模型部署…...
嵌入式通用软件包ToolKit:跨平台模块化设计与工程实践
1. 项目概述:为什么我们需要一个“嵌入式通用软件包”?在嵌入式开发这个行当里摸爬滚打了十几年,我最大的感受就是“重复造轮子”和“碎片化”是效率的两大杀手。你想想看,是不是每个新项目启动,都得重新搭建一遍日志系…...
CANN 算子融合技术:Conv-BN-ReLU 与 MatMul-LayerNorm 等融合模式深度解析
CANN 算子融合技术:Conv-BN-ReLU 与 MatMul-LayerNorm 等融合模式深度解析算子融合是提升性能的关键手段。本文深入讲解昇腾支持的算子融合技术、实现原理和应用实践。一、融合技术概述 1.1 为什么要融合 原始: Conv → BN → ReLU → Conv → BN → ReLU融合前内存…...
从Noise2Noise到Neighbor2Neighbor:图解自监督去噪的演进与核心‘采样’技巧
从Noise2Noise到Neighbor2Neighbor:自监督去噪技术的范式跃迁与工程实践 当你在昏暗环境下用手机拍摄一张照片时,那些恼人的彩色颗粒可能让你直接点击删除键。传统去噪方法需要大量"干净-噪声"图像对进行训练,而真实世界中获取完美…...
铜钟音乐平台完整指南:三步打造纯净无干扰的听歌体验
铜钟音乐平台完整指南:三步打造纯净无干扰的听歌体验 【免费下载链接】tonzhon-music 铜钟 Tonzhon (tonzhon.whamon.com): 干净纯粹的音乐平台 (铜钟已不再使用 tonzhon.com,现在的 tonzhon.com 不是正版的铜钟) 项目地址: https://gitcode.com/GitHu…...
iTorrent完整指南:如何在iPhone上实现专业级种子下载管理
iTorrent完整指南:如何在iPhone上实现专业级种子下载管理 【免费下载链接】iTorrent Torrent client for iOS 16 项目地址: https://gitcode.com/gh_mirrors/it/iTorrent iTorrent是一款专为iOS 16设备设计的专业种子客户端应用,让你能够在iPhone…...
