news 2026/4/16 16:46:58

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/4/16 9:01:31

利用Debye-Wolf积分对理想矢量聚焦情况的研究

1. 摘要了解高NA物镜焦距附近的矢量电场分布对如显微、光镊、激光加工等应用具有重要意义。 Debye-Wolf积分提供了焦平面附近矢量场的半解析解,并得到了广泛的应用。我们演示了如何在VirtualLab Fusion中使用Debye-Wolf积分计算器来研究不同参数下的聚焦场特性。2. …

作者头像 李华
网站建设 2026/4/16 9:01:16

5步搞定Unity游戏翻译:XUnity Auto Translator新手完全指南

5步搞定Unity游戏翻译:XUnity Auto Translator新手完全指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 想要轻松玩转日系RPG或欧美独立游戏,却被语言障碍困扰?XUni…

作者头像 李华
网站建设 2026/4/16 3:26:42

亲测!编程培训小红书运营实践经验

痛点深度剖析我们团队在实践中发现,当前编程培训小红书运营存在诸多困境。行业共性难题在于,难以精准触达目标学员,大量内容曝光效果不佳。此外,算法更新频繁,运营策略难以跟上节奏,导致内容推广延迟。同时…

作者头像 李华
网站建设 2026/4/15 14:53:25

百度ERNIE 4.5大模型技术深度解析:多模态架构革新与效率突破

作为百度ERNIE系列的新一代旗舰模型,ERNIE 4.5在技术架构上实现了跨越式升级。该模型通过三大核心技术创新——异构混合专家(MoE)系统、跨模态协同训练机制以及革命性的量化推理方案,全面提升了大模型的多模态理解能力与计算效率&…

作者头像 李华