news 2026/5/23 17:52:11

Shell脚本部署——8day

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Shell脚本部署——8day

Shell脚本部署

课程目标

  1. 掌握shell脚本的思路

  2. 完成shell脚本的编写

课程实验

  1. shell脚本的思路

  2. shell脚本的编写

课堂引入

部署项目中,有很多都是固定的模式与内容,所有的东西都需要人工去操作的话,成本就比较高,也比较麻烦,能不能通过脚本自动取执行呢?

授课进程

一、脚本部署思路
1、概述

shell脚本自动化部署旨在完成一个固定程式化的东西,解放劳动力。

2、思路
  • 防火墙

  • 主机名

  • yum源

  • 安装MySQL

  • 安装apache

  • 安装PHP

  • 配置

  • 启动项目

二、脚本实现
1、防火墙
#!/bin/bash ​ # 防火墙相关设置 systemctl status firewalld | grep -w "dead" &> /dev/null if [ $? -eq 0 ];then echo "防火墙已经关闭,不需要进行处理" else echo "防火墙处理中..." systemctl stop firewalld &> /dev/null systemctl disable firewalld &> /dev/null fi setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config echo "关闭防火墙成功"
2、主机名
# 设置主机名 if [ $# -eq 0 ];then hostnamectl set-hostname server.com &>/dev/null else hostnamectl set-hostname $1 &>/dev/null fi echo "设置主机名成功"
3、yum源
# 配置yum源 # 看网络是否可以ping通 ping -c1 www.baidu.com &> /dev/null if [ ! $? -eq 0 ];then echo "网络不通,请先确认网路是否通畅,退出脚本" exit fi # 先通过yum安装wget yum install wget -y &> /dev/null # 备份之前的镜像源 cd /etc/yum.repos.d/ tar -zcvf repo.tar.gz *.repo rm -rf *.repo # 配置阿里镜像源 wget -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.rep yum clean all yum makecache # 安装扩展镜像源 yum install epel-release -y
#!/bin/bash # 防火墙相关设置 systemctl stop firewalld &>/dev/null systemctl disable firewalld &>/dev/null setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config echo "关闭防火墙成功" # 设置主机名 if [ $# -eq 0 ];then hostnamectl set-hostname server.com &>/dev/null else hostnamectl set-hostname $1 &>/dev/null fi echo "设置主机名成功" # 配置yum源 # 看网络是否可以ping通 ping -c1 www.baidu.com &>/dev/null if [ ! $? -eq 0 ];then echo "网络不通,请先确认网路是否通畅,退出脚本" exit fi # 先通过yum安装wget yum install wget -y &>/dev/null # 备份之前的镜像源 cd /etc/yum.repos.d/ tar -zcvf repo.tar.gz *.repo &>/dev/null rm -rf *.repo # 配置阿里镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null yum clean all &>/dev/null yum makecache &>/dev/null # 安装扩展镜像源 yum install epel-release -y &>/dev/null echo "yum源配置成功"
4、安装MySQL
# 安装MySQL # 1. 检查MySQL源码包是否已经上传 # 2. 检查并创建用户 # 3. 解压缩软件并进入MySQL目录 # 4. 源码配置,安装必要的依赖 # 5. 执行配置选项 # 6. 编译并安装 # 7. 更改数据目录权限 # 8. 初始化数据库 # 9. 拷贝启动脚本 # 10. 启动数据库 # 11. 设置密码
# 安装MySQL # 1. 检查MySQL源码包是否已经上传 if [ ! -e /root/mysql-5.6.31.tar.gz ];then echo "MySQL安装包不存在,请检查是否上传MySQL安装包" exit fi # 2. 检查并创建用户 grep -w 'mysql' /etc/passwd if [ ! $? -eq 0 ];then echo "不存在mysql用户,创建mysql系统用户" useradd -r -s /sbin/nologin mysql fi # 3. 解压缩软件并进入MySQL目录 tar -zxvf mysql-5.6.31.tar.gz cd mysql-5.6.31 # 4. 源码配置,安装必要的依赖 echo "正在安装必要的一些依赖....." yum install gcc-c++ -y yum install cmake -y yum -y install ncurses-devel yum -y install autoconf # 5. 执行配置选项 echo "正在配置MySQL....." cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DMYSQL_TCP_PORT=3306 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DMYSQL_USER=mysql # 6. 编译并安装 echo "正在编译安装MySQL....." make && make install # 7. 更改数据目录权限 chown -R mysql.mysql /usr/local/mysql/ # 8. 初始化数据库 rm -f /etc/my.cnf cd /usr/local/mysql/ ./scripts/mysql_install_db --user=mysql # 9. 拷贝启动脚本 cp support-files/mysql.server /etc/init.d/mysql # 10. 启动数据库 service mysql starat # 11. 设置密码 /usr/local/mysql/bin/mysqladmin -u root password '123456' # 12. 配置环境变量 echo 'export PATH=/usr/local/mysql/bin/:$PATH' /etc/profile source /etc/profile

课堂小结

  1. shell脚本的思路

  2. shell脚本的编写

课后作业

  1. 课堂的案例及练习

  2. 将今天的内容整理为思维导图的形式

扩展内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 17:51:00

AI 自动生成报表

1. AI 生成图表 向上汇报经常需要制作图表,如果没有顺手的工具,可能需要花费大量的时间消耗在报表的制作上。随着AI的迅猛发展,我们通过一个简单的对话来低成本实现报表的生成。 2. 使用到的工具 MCP 平台:https://www.modelscope…

作者头像 李华
网站建设 2026/5/23 14:41:58

Unity学习笔记(十二)碰撞中的刚体和碰撞器

碰撞产生的必要条件 两个物体都有碰撞器,至少有一个物体有刚体刚体1.它就是模拟力的作用2.Mass质量 默认为KG 质量越大 阻性越大3.Drag空气阻力 根据力移动对象时影响对象的空气阻力大小。影响移动,0表示没有空气阻力4.Use Gravity 是否受重力影响5.Angu…

作者头像 李华
网站建设 2026/5/23 17:50:56

微服务架构下的全方位测试策略

微服务架构的测试挑战与机遇随着企业数字化转型加速,微服务架构因其灵活性、可扩展性和技术异构性成为主流。据预测,到2025年,超70%的新建系统将采用此架构。然而,分布式系统带来的服务依赖复杂、部署频繁、故障隔离困难等挑战&am…

作者头像 李华
网站建设 2026/5/23 17:51:00

Qwen2.5-VL 3B模型震撼发布:轻量级视觉大模型如何重构行业应用范式?

近期,Qwen2.5-VL系列多模态大模型(包含3B、7B、72B三个参数版本)正式揭开神秘面纱。作为该系列的轻量化代表,3B版本在保持部署门槛优势的同时,实现了视觉理解能力的跨越式升级。该模型突破性地支持通过生成精确边界框或…

作者头像 李华
网站建设 2026/5/23 17:51:52

企业级知识库问答系统实战:从架构到部署的完整指南,大模型入门

文章详解了大模型智能问答系统的构建全流程,涵盖架构设计、检索增强生成、性能优化、部署维护等关键技术,提供完整代码实现和解决方案,并分享AI学习路线与面试资源,助力开发者全面掌握大模型应用开发。 本文较长,请双击…

作者头像 李华
网站建设 2026/5/8 15:10:29

PHP 8.6 JIT性能突破:3种典型应用架构下的真实加速比分析

第一章:PHP 8.6 的 JIT 编译性能基准测试PHP 8.6 即将发布,其核心优化之一是进一步增强的 JIT(Just-In-Time)编译器。本章通过标准基准测试工具对 JIT 在典型工作负载下的性能表现进行量化分析,涵盖数值计算、字符串处…

作者头像 李华