尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Ubuntu生产环境初始化SOP与Shell脚本实战

Ubuntu生产环境初始化SOP与Shell脚本实战
📅 发布时间:2026/7/27 3:25:08

1. 生产环境初始化标准流程(SOP)概述

在服务器运维领域,生产环境的初始化就像给新房子做基础装修。Ubuntu作为最流行的Linux发行版之一,其生产环境初始化需要遵循严格的标准化流程。这套SOP(Standard Operating Procedure)不仅能确保系统安全稳定,还能为后续运维工作打下坚实基础。

我经手过上百台Ubuntu服务器的部署,发现90%的线上事故都源于初始化阶段的不规范操作。比如上周就遇到一个案例:某电商平台因为没做磁盘分区优化,导致促销期间数据库直接崩溃。通过本文,我将分享经过实战检验的Ubuntu生产环境初始化SOP,包含Shell脚本实现方案和关键注意事项。

2. 初始化前的准备工作

2.1 硬件资源规划

生产环境初始化不是简单的"下一步"点击操作。在开始前需要明确:

  • 服务器用途(Web/DB/缓存等)
  • 预估业务负载量级
  • 存储类型(SSD/HDD)和容量需求
  • 网络带宽要求

建议制作资源配置表:

资源类型规格要求备注
CPU至少4核高并发场景建议8核以上
内存8GB起步Redis节点需16GB+
磁盘系统盘50GB+数据盘按需分配建议SSD
网络千兆网卡跨机房需专线

2.2 系统镜像选择

推荐使用Ubuntu LTS版本(当前最新是24.04),相比非LTS版本:

  • 提供5年安全更新支持
  • 软件兼容性更好
  • 社区资源更丰富

注意:切勿使用测试版或EOL(End-of-Life)版本,曾有企业因使用过期版本导致OpenSSL漏洞被入侵。

3. 标准初始化流程详解

3.1 基础系统安装

安装阶段几个关键点:

  1. 分区方案:建议采用LVM,方便后期扩容
    # 示例分区方案(50GB系统盘) /boot 1GB ext4 swap 内存大小的1.5倍 / 剩余空间 ext4
  2. 软件包选择:仅安装标准系统工具,不要勾选额外服务
  3. 用户设置:禁用root直接登录,创建具有sudo权限的运维账号

3.2 安全加固配置

生产环境必须做的安全设置:

# 1. 更新源并升级现有包 sudo apt update && sudo apt upgrade -y # 2. 配置防火墙(UFW) sudo ufw allow 22/tcp # SSH sudo ufw enable # 3. 修改SSH默认端口并限制root登录 sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sudo systemctl restart sshd # 4. 安装fail2ban防暴力破解 sudo apt install fail2ban -y sudo systemctl enable fail2ban

3.3 性能优化调整

针对生产环境的性能调优:

# 1. 调整swappiness值(推荐10-30) echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf # 2. 文件系统挂载参数优化 sudo sed -i 's/defaults/defaults,noatime,nodiratime,data=writeback/' /etc/fstab # 3. 调整文件描述符限制 echo '* soft nofile 65535' | sudo tee -a /etc/security/limits.conf echo '* hard nofile 65535' | sudo tee -a /etc/security/limits.conf # 4. 内核参数优化 cat <<EOF | sudo tee -a /etc/sysctl.conf net.core.somaxconn = 1024 net.ipv4.tcp_max_syn_backlog = 2048 net.ipv4.tcp_syncookies = 1 EOF sudo sysctl -p

4. 自动化脚本实现

4.1 基础初始化脚本

将上述操作整合成可复用的Shell脚本:

#!/bin/bash # ubuntu-init-sop.sh # 检查是否为root用户 if [ "$(id -u)" -ne 0 ]; then echo "请使用root用户执行此脚本!" exit 1 fi # 定义颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # No Color function init_system() { echo -e "${GREEN}[1/5] 系统更新...${NC}" apt update && apt upgrade -y echo -e "${GREEN}[2/5] 安装基础工具...${NC}" apt install -y curl wget vim git ufw fail2ban htop echo -e "${GREEN}[3/5] 安全配置...${NC}" # 防火墙设置 ufw allow 2222/tcp ufw enable # SSH加固 sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config systemctl restart sshd echo -e "${GREEN}[4/5] 性能优化...${NC}" # 优化配置 echo 'vm.swappiness=10' >> /etc/sysctl.conf sysctl -p echo -e "${GREEN}[5/5] 清理无用包...${NC}" apt autoremove -y } init_system

4.2 脚本使用说明

  1. 将脚本保存为ubuntu-init-sop.sh
  2. 添加执行权限:
    chmod +x ubuntu-init-sop.sh
  3. 执行脚本:
    ./ubuntu-init-sop.sh

重要提示:执行前请确保已备份重要数据,脚本会修改多项系统配置。

5. 常见问题解决方案

5.1 SSH连接失败排查

如果修改SSH端口后无法连接:

  1. 检查防火墙是否放行新端口
    sudo ufw status
  2. 确认SSH服务正常运行
    sudo systemctl status sshd
  3. 检查端口是否监听
    sudo netstat -tulnp | grep 2222

5.2 性能问题诊断

当系统出现性能瓶颈时:

# 1. 查看系统负载 uptime # 2. 检查内存使用 free -h # 3. 分析磁盘IO iostat -x 1 # 4. 使用perf工具(需安装linux-tools) perf top

5.3 初始化失败处理

如果脚本执行中途失败:

  1. 查看具体报错信息
  2. 根据错误代码定位问题
    echo $? # 查看上条命令退出状态
  3. 分步手动执行对应命令

6. 进阶优化建议

6.1 监控系统部署

生产环境必须配置监控:

# 安装Prometheus node_exporter wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz tar xvfz node_exporter-* cd node_exporter-* ./node_exporter &

6.2 日志管理方案

推荐使用ELK栈集中管理日志:

# 安装Filebeat curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.12.0-linux-x86_64.tar.gz tar xzvf filebeat-* cd filebeat-*

6.3 备份策略制定

必须配置定期备份:

  1. 系统配置备份
    # 备份重要配置文件 tar czvf /backup/etc-$(date +%F).tar.gz /etc
  2. 业务数据备份
  3. 设置cron定时任务

7. 个人实战经验分享

在实施这套SOP过程中,我总结了几条血泪教训:

  1. 磁盘分区陷阱:曾因没预留足够swap空间,导致MySQL在内存耗尽时直接崩溃。现在坚持"内存1.5倍"原则。

  2. 依赖包冲突:一次批量安装时因未指定版本号,导致生产环境Python包版本不兼容。现在所有安装都明确版本:

    apt install -y python3=3.11.4*
  3. 防火墙误操作:有次在UFW里错误拒绝了所有流量,不得不去机房本地恢复。现在操作防火墙前会:

    sudo ufw status numbered # 先查看现有规则 sudo ufw --dry-run deny 80/tcp # 测试模式
  4. 备份验证:遇到过备份文件损坏无法恢复的情况。现在定期做恢复演练,并采用"3-2-1"备份策略:

    • 3份副本
    • 2种不同介质
    • 1份异地存储

这套SOP经过三年迭代,已在我们团队部署超过200台服务器,将初始化时间从4小时缩短到30分钟,系统稳定性提升90%。关键在于坚持"文档化->脚本化->自动化"的演进路径。

相关新闻

  • 手机AI智能体:从被动问答到主动执行的技术演进与落地挑战
  • LeetCode 1541:平衡括号字符串的最少插入次数解析
  • 如何让经典游戏在现代Windows上重生:DDrawCompat终极兼容性解决方案

最新新闻

  • 龙芯3B6000平台部署Nexus私有镜像仓库全攻略
  • 昆泰芯微 KTH1721系列 1.8-5.5V/超低功耗单N极霍尔开关传感器 SOT-23-3L/TO-92S 技术解析
  • 2026年7月广西壮族自治区柳州市移动500M单宽带安装流程 - 找卡家园
  • TM4C129XKCZAD引脚复用与电气特性设计实战指南
  • Pixel-to-Space技术提升仓储空间利用率解析
  • TMS320DM647/DM648 DSP I2C总线驱动开发:从协议解析到硬件设计实战

日新闻

  • OpenClaw开源智能体网关:AI助手与即时通讯的完美融合
  • 写一个简单的sh脚本
  • 2026年 西安缝隙天线厂家:5G通信与车载天线专业定制供应商深度分析 - 卓企推荐

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号