尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

从零到企业级:Linux运维完整学习路线与实战指南

从零到企业级:Linux运维完整学习路线与实战指南 先提醒一句如果你真的想靠 Linux 运维入行、转岗、拿 Offer光收藏一篇教程是不够的必须跟着动手敲命令、装系统、配服务。本文会把从零基础到企业级中间件部署的完整路径拆开讲清楚包含环境搭建、常用命令、系统管理、中间件实战、排错思路和面试考点全部按“能复现、能落地”的标准来写。无论你是刚接触服务器还是已经从开发转向运维方向都可以把这份内容当作入行路线图来用。1. 为什么要学 Linux运维岗位到底在做什么1.1 运维工程师的日常工作很多新手对“运维”的理解停留在“装系统、重启服务器、盯着监控大屏”实际上现代运维工程师的工作范围要宽很多。从 ITIL 的视角来看运维能力通常被划分为事件管理、问题管理、变更管理、配置管理、发布管理、容量管理、可用性管理和连续性管理等维度。落到日常工作中大概包括下面这些内容服务器操作系统的安装、初始化、安全加固。基础软件的部署与维护比如 Nginx、MySQL、Redis、消息队列、Spring Boot 应用等。监控告警体系的搭建比如主机负载、磁盘水位、接口耗时、日志错误率。脚本自动化用 Shell 或 Python 把重复性操作变成一键执行。故障排查从“用户说系统卡了”到定位 CPU、内存、磁盘、网络、应用日志的过程。发布变更配合开发完成代码上线、配置更新、版本回滚。所以说Linux 是运维的“地基”。地基不牢后续所有的监控、自动化、中间件、容器化都很难真正落地。这也是为什么企业招聘 Linux 运维时几乎 100% 都会考察基础命令和系统管理能力。1.2 为什么转行运维首选从 Linux 入手对比其他技术方向Linux 运维有一个很现实的优势学习路径非常线性反馈快试错成本低。一台虚拟机、一个系统镜像就能把 90% 的基础操作练习起来。你不需要先配置复杂的分布式环境也不需要理解高深的算法只要能坚持每天练习命令、理解系统工作原理3 到 6 个月完全可以从零基础达到初级运维工程师的水平。从招聘市场的反馈来看初级运维岗位对学历和经验的要求往往比研发岗更宽松更看重实际操作能力和排错思路。很多人转行运维的第一站学的就是 Linux 基础、网络基础和 Shell 脚本。本文后面给出的整套路线也是按照这个逻辑展开的。1.3 本文的学习路线预览为了让这篇教程真正有指导意义我按企业级运维的落地顺序做了下面的内容组织环境准备虚拟机与 Linux 发行版选型。文件与目录管理最核心的日常操作。用户权限与安全边界生产环境的底线。进程、网络、系统状态排查问题定位的基本功。文本处理三剑客grep、sed、awk 的高频用法。系统服务与 systemd看懂服务是怎么跑起来的。企业级中间件部署实战以 Nginx 和 MySQL 为例讲完整流程。常见故障排查与面试高频考点。最佳实践与工程建议。每一部分都配有命令示例和解释建议你打开终端边看边敲。不要只是“看懂了”要训练到“手能跟得上脑子”。2. 环境准备从零搭建一套可练习的 Linux 环境2.1 发行版怎么选Linux 发行版很多刚入门时容易纠结。这里给出一个比较稳妥的选择逻辑学习入门推荐 CentOS Stream、Rocky Linux、AlmaLinux或者 Ubuntu Server。这些发行版资料多社区活跃遇到问题容易搜到解决方案。国产化环境国内不少政企项目使用麒麟Kylin、统信 UOSUOS等基于 Linux 的国产操作系统。这类系统在信创场景很常见如果你未来面向国产化运维可以在基础学完后找个环境练一练。桌面练习如果不想一上来就用纯命令行可以先装带图形界面的版本熟悉后再切换到命令行模式。但生产服务器几乎都是纯命令行所以最终还是要适应终端操作。需要说明的是不同发行版的包管理器不一样发行版包管理器安装软件示例CentOS / Rocky / AlmaLinuxyum / dnfdnf install -y nginxUbuntu / Debianaptapt install -y nginx麒麟 / UOS部分版本apt / yum 均有视具体版本而定本文示例以 CentOS/Rocky 系列为主Ubuntu 用户注意把包管理器替换为 apt 即可。2.2 虚拟机安装 Linux 的完整思路这里不贴每一步点击截图重点讲清楚思路避免你在装系统时卡在无意义的细节上。第一步准备虚拟机软件。常见选择是 VMware Workstation 或 VirtualBox。VMware 操作直观VirtualBox 免费开源两者都可以。第二步下载系统镜像。以 Rocky Linux 为例可以到官网下载 DVD 镜像大约几个 GB。不建议下载精简版学习阶段完整版更省心。第三步创建虚拟机时注意几个关键参数CPU至少分配 2 核方便后续跑中间件实验。内存至少 2GB推荐 4GB。1GB 内存跑编译或中间件会非常吃力。磁盘至少 20GB。后续安装数据库、日志、依赖包都会占用空间磁盘太小容易中途尴尬。网络选择 NAT 模式即可方便虚拟机访问外网同时和宿主机隔离比较安全。第四步安装过程中的几个关键点软件选择建议勾选“带 GUI 的服务器”或最小化安装。如果追求纯粹命令行体验可以选最小化安装。磁盘分区新手可以直接用自动分区。生产环境再根据业务规划数据盘和系统盘分离。创建用户root 密码要记住同时可以创建一个普通用户用于日常登录。装好系统后第一件事是配置网络和更新源。对于 Rocky Linux 来说可以检查网卡状态ip addr ping -c 4 www.baidu.com如果网络不通先检查是不是网卡默认没有启动。在部分最小化安装环境中需要手动修改网卡配置文件将ONBOOTyes设置好再执行systemctl restart network或使用 NetworkManager 重启连接。2.3 远程连接工具真实工作中你不会一直坐在服务器前操作而是通过 SSH 远程连接。Windows 用户可以用 Xshell、MobaXterm、FinalShell 等工具也可以直接用 PowerShell 自带的 ssh 命令。确认 Linux 系统开启了 SSH 服务systemctl status sshd如果没有安装可以执行# CentOS / Rocky dnf install -y openssh-server systemctl start sshd systemctl enable sshd远程连接的基本命令格式ssh 用户名服务器IP例如ssh root192.168.1.100第一次连接会出现 host key 确认提示输入 yes 并回车即可。到这里一套可以随时练手的 Linux 环境就准备好了。后面所有命令请你在自己的虚拟机里实际操作一遍。3. 文件与目录管理每天都会用到的 Linux 基础命令3.1 当前目录与路径切换在 Linux 中路径分为绝对路径和相对路径。绝对路径从/开始写例如/etc/nginx/nginx.conf相对路径从当前位置开始写。常用命令如下# 查看当前所在目录 pwd # 切换目录 cd /etc cd ../ cd ~ cd - # 查看目录下的内容 ls ls -l ls -a ls -lh这里重点解释ls -l输出内容的含义。以一个文件为例-rw-r--r--. 1 root root 1024 Jan 10 10:30 test.txt从左到右分别是文件类型与权限、硬链接数、属主、属组、文件大小、最后修改时间、文件名。第一列的-rw-r--r--中第一个字符表示文件类型-是普通文件d是目录l是软链接。后面九个字符分成三组分别是属主权限、属组权限和其他用户权限每组都是rwx的组合r表示可读w表示可写x表示可执行。3.2 文件创建、复制、移动与删除这是最基础的文件操作# 创建空文件 touch test.txt # 创建目录 mkdir /data mkdir -p /data/logs/nginx # 复制文件 cp test.txt /data/test.txt.bak # 移动或重命名 mv /data/test.txt.bak /data/test.txt.20260801 # 删除文件或目录 rm /data/test.txt.20260801 rm -rf /data/logs需要特别强调在 Linux 中删除文件是不可逆的尤其在生产环境rm -rf后面跟错路径可能直接把系统目录删掉。很多运维事故都是因为rm -rf变量为空或者路径写错导致的。建议在执行删除命令前先ls确认路径或者用echo把变量打印出来检查。一个更安全的做法是在关键目录中尽量避免直接使用rm -rf而是先把数据移动到/tmp下确认没有问题后再清理。你可以把这样一个函数加到~/.bashrc中替代危险的直接删除# 安全删除先移动到 /tmp 目录 function safe-rm() { mkdir -p /tmp/trash mv $ /tmp/trash/ }然后在当前会话中执行source ~/.bashrc safe-rm /data/test.txt当然这只是一个辅助习惯真正的生产环境还要结合备份和权限管理来保证数据安全。3.3 查看文件内容常见的文件内容查看命令有四个各有侧重# cat 适合小文件 cat /etc/hostname # less 适合大文件支持上下翻页和搜索 less /var/log/messages # head 查看前 N 行 head -n 20 /var/log/messages # tail 查看后 N 行-f 表示实时跟踪 tail -n 50 /var/log/messages tail -f /var/log/messages其中tail -f是排查日志时的神器比如观察应用启动日志、请求日志时它会持续输出新增内容方便你实时定位问题。3.4 打包与压缩服务器上的日志、备份文件、软件包经常需要打包压缩。常用的是 tar 命令# 打包并压缩成 tar.gz tar -czvf /data/backup.tar.gz /etc/nginx # 查看压缩包内容 tar -tzvf /data/backup.tar.gz # 解压 tar -xzvf /data/backup.tar.gz -C /data/参数解析-c打包-z使用 gzip 压缩-v显示过程-f指定文件名-x解压-C指定解压目录。这套命令在备份场景中使用频率非常高建议练熟。4. 用户与权限管理生产环境的底线4.1 为什么不能一直用 root很多新手为了省事习惯直接用 root 操作一切。在个人虚拟机里没问题但在生产环境中风险极高。因为 root 权限太大误操作一个命令可能直接影响整个系统。正确做法是日常使用普通用户登录需要执行管理操作时通过sudo临时提权。在真实生产环境中权限管理还涉及到最小权限原则每个运维人员只分配完成工作所必需的最小权限避免单人拥有过大权限导致误操作或安全风险。这个原则同样适用于数据库账号、应用服务账号和 API 密钥管理。4.2 用户创建与配置创建新用户的命令如下# 创建用户 useradd zhangsan # 设置密码 passwd zhangsan # 创建用户并指定家目录和 shell useradd -m -d /home/zhangsan -s /bin/bash zhangsan # 将用户加入 wheel 组使其可以使用 sudo usermod -aG wheel zhangsan在 Ubuntu 中管理员组通常是sudo所以命令要改成usermod -aG sudo zhangsan创建用户后建议立即做两件事一是测试该用户能否正常登录二是确认 sudo 权限是否符合预期。很多新手把用户加进 sudo 组后没有退出重新登录就测试导致误以为配置失败。4.3 文件权限与 ACLLinux 中修改权限的命令是chmod修改属主属组的命令是chown。# 将文件属主改成 zhangsan属组改成 ops chown zhangsan:ops /data/test.txt # 给属主加执行权限 chmod ux /data/test.txt # 设置 755 权限属主可读写执行属组和其他用户可读执行 chmod 755 /data/test.txt # 设置 644 权限属主可读写属组和其他用户只读 chmod 644 /data/test.txt我们通常用数字表示权限r4w2x1。所以rwxr-xr-x就是755rw-r--r--就是644。在某些复杂场景下基础权限不够用比如需要让多个特定用户对某个目录都有读写权限这时可以使用 ACL访问控制列表。# 给指定用户单独设置权限 setfacl -m u:zhangsan:rwx /data/project # 查看 ACL 设置 getfacl /data/projectACL 适合细粒度权限控制建议在理解基础权限之后再学习。4.4 sudo 提权的配置思路/etc/sudoers文件控制谁能执行哪些特权命令。修改这个文件的正确方式不是直接 vi 编辑而是使用visudo因为它会做语法检查避免配置错误导致 sudo 完全不可用。一个常见的需求允许运维组成员执行所有命令但不允许切换为 root 执行某些敏感命令。可以在/etc/sudoers.d/下创建一个独立文件ops内容如下# 允许 ops 组执行所有命令但不需要密码按需修改 %ops ALL(ALL) NOPASSWD: ALL如果只是允许用户执行特定服务管理命令可以这样写zhangsan ALL(ALL) /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx日常运维中我建议把 sudo 的权限尽可能细化不要图省事给所有人ALL ALL。权限越细故障半径越小。5. 进程、网络与系统状态查看问题定位的基本功5.1 查看系统负载当用户反馈“服务器变慢了”第一步就是查看系统负载uptime输出示例10:30:01 up 3 days, 2:10, 1 user, load average: 0.08, 0.03, 0.01load average 分别表示过去 1 分钟、5 分钟、15 分钟的平均负载。需要结合 CPU 核数来判断负载是否过高。如果是 4 核机器负载长期超过 4说明系统已经处于过载状态。5.2 查看进程与资源占用# 动态查看进程按 CPU 排序 top # 等价方式更适合脚本处理 ps aux --sort-%cpu | head -n 20 # 查看某个进程的线程 top -Hp 进程ID # 查看进程打开的端口 ss -lntp | grep 进程名top进入交互界面后按P按 CPU 排序按M按内存排序按q退出。这是排查性能问题时最常用的操作。5.3 查看磁盘与内存# 查看磁盘分区使用情况 df -h # 查看目录占用空间 du -sh /data/* du -sh /var/log # 查看内存使用 free -h内存部分要重点关注available这个值它表示在不触发 swap 的情况下还可以分配给新程序的物理内存大小比纯看 free 更接近真实可用情况。当磁盘满了最影响业务的主要是日志增长和临时文件堆积。排查时用du -sh /var/log/*找到最大目录再进一步定位大文件确认之后再进行清理。5.4 网络排查三件套- ping测试网络连通性。 - telnet / nc测试端口是否可达。 - curl测试 HTTP 接口是否正常。示例ping -c 4 192.168.1.1 telnet 192.168.1.10 3306 curl -I http://127.0.0.1:8080如果端口不通按照“服务是否启动 - 防火墙是否放行 - 云安全组是否开放 - 网络链路是否正常”的顺序排查基本能覆盖绝大多数网络访问问题。5.5 进程管理# 查看进程详细信息 ps -ef | grep nginx # 结束进程 kill 进程ID # 强制结束 kill -9 进程ID # 按名称结束 pkill -f nginx这里要注意kill -9虽然是万能的但生产环境中优先使用规范的停止命令比如nginx -s stop、systemctl stop nginx。因为kill -9直接杀死进程可能导致文件句柄没有释放、数据没有落盘等情况。6. 文本处理三剑客grep、sed、awk6.1 grep快速过滤关键字运维工作中 grep 使用频率最高比如从日志中找出错的请求# 在文件中查找包含 ERROR 的行 grep ERROR /var/log/app.log # 递归查找目录下所有文件 grep -r timeout /data/logs/ # 忽略大小写 grep -i error /var/log/app.log # 输出匹配行以及后 10 行 grep -A 10 Exception /var/log/app.log # 统计匹配行数 grep -c ERROR /var/log/app.log6.2 sed流式编辑sed 可以完成替换、删除、打印等操作适合对文件做批量修改。# 将 nginx.conf 中的 80 端口替换为 8080 sed -i s/80/8080/g /etc/nginx/nginx.conf # 删除空行 sed -i /^$/d /etc/nginx/nginx.conf # 打印第 10 到 20 行 sed -n 10,20p /etc/nginx/nginx.conf-i表示直接修改文件使用前建议先备份。这是新手最容易忽略的一点一旦替换内容写错可能把配置文件改坏。6.3 awk按列处理文本awk 的核心优势是处理“列”比如从日志中提取某个字段。# 打印文件第一列和第三列默认以空格分隔 awk {print $1, $3} /var/log/nginx/access.log # 指定分隔符比如冒号 awk -F: {print $1} /etc/passwd # 统计日志中每个状态的请求次数 awk {print $9} /var/log/nginx/access.log | sort | uniq -cawk 的功能远不止这些但对于初级运维来说掌握按列提取、条件过滤、统计汇总三类场景就够日常使用了。7. systemd 与系统服务管理7.1 服务的启动、停止与开机自启现代 Linux 发行版都使用 systemd 管理服务。它的核心概念是 unit单元常见的有 service、socket、timer 等。最常用的是 service 类型。# 启动服务 systemctl start nginx # 停止服务 systemctl stop nginx # 重启服务 systemctl restart nginx # 重新加载配置不中断服务 systemctl reload nginx # 设置开机自启 systemctl enable nginx # 查看服务状态 systemctl status nginxenable和start是两个不同的概念前者控制开机是否自动启动后者控制当前是否运行。两者可以一起执行systemctl enable --now nginx7.2 自定义一个 systemd 服务如果我们要把一个 Java 应用托管给 systemd可以编写一个 service 文件。以 Spring Boot 应用为例创建一个/etc/systemd/system/app-demo.service文件内容如下[Unit] DescriptionDemo Spring Boot Application Afternetwork.target mysql.service [Service] Typesimple Userapp WorkingDirectory/opt/app-demo ExecStart/usr/bin/java -jar /opt/app-demo/app-demo.jar --spring.profiles.activeprod Restarton-failure RestartSec5 [Install] WantedBymulti-user.target配置写好后执行systemctl daemon-reload systemctl start app-demo systemctl enable app-demo这里重点解释几个参数After表示服务依赖哪些服务比如在 MySQL 启动之后再启动本应用。Restarton-failure进程非正常退出时自动拉起这是生产环境保证服务可用性的重要手段。WorkingDirectory设置工作目录很多配置文件读取路径都依赖它。通过 systemd 管理应用比直接用nohup java -jar更规范也更容易监控和维护。7.3 日志查看systemd 服务默认会把标准输出和错误输出记录到 journald 中可以用journalctl查看。# 查看某个服务的全部日志 journalctl -u app-demo # 查看最近 100 行并持续跟踪 journalctl -u app-demo -n 100 -f如果服务没有单独配置日志文件这一步能帮你快速定位启动失败的原因。8. 企业级中间件部署实战以 Nginx 和 MySQL 为例“中间件”是一个比较宽泛的概念凡是介于操作系统和应用之间的基础软件比如 Web 服务器、缓存、数据库、消息队列都可以称为中间件。这一节选取运维日常打交道最多的 Nginx 和 MySQL完整演示从安装到配置再到验证的流程。这套思路可以平移到 Redis、RabbitMQ、Kafka 等组件的部署上。8.1 部署 Nginx 作为 Web 服务器与反向代理Nginx 在企业里最常见的三种用途静态资源服务、反向代理、负载均衡。安装方式如下# CentOS / Rocky dnf install -y nginx # Ubuntu apt update apt install -y nginx启动并设置开机自启systemctl start nginx systemctl enable nginx systemctl status nginx安装完后本机访问http://127.0.0.1会看到 Nginx 默认欢迎页。如果访问不了优先检查防火墙# 放行 80 端口 firewall-cmd --permanent --add-servicehttp firewall-cmd --reload接下来演示一个最常见的反向代理配置把 Nginx 的 80 端口转发到本机 8080 端口的 Spring Boot 应用。编辑/etc/nginx/conf.d/app-demo.confserver { listen 80; server_name demo.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /static/ { alias /opt/app-demo/static/; expires 7d; } }配置完成后先测试语法再重载配置nginx -t systemctl reload nginx这里说明一下proxy_set_header的作用如果不设置X-Forwarded-For后端应用拿到的客户端 IP 会被 Nginx 覆盖导致日志分析与安全审计失真。8.2 部署 MySQL 数据库数据库是非常核心的中间件部署时要格外谨慎。以下步骤适合学习环境生产环境还需要考虑数据目录独立、备份策略、参数调优等。以 Rocky Linux 安装 MySQL 8.0 为例先安装 MySQL 官方仓库dnf install -y https://repo.mysql.com/mysql80-community-release-el8-1.noarch.rpm然后安装服务dnf install -y mysql-community-server启动并设置自启systemctl start mysqld systemctl enable mysqldMySQL 8.0 安装完成后会自动生成临时 root 密码查看方式grep temporary password /var/log/mysqld.log用临时密码登录mysql -uroot -p然后强制修改密码ALTER USER rootlocalhost IDENTIFIED BY 新密码;如果密码策略太严格可以先查看策略再调整SHOW VARIABLES LIKE validate_password%;生产环境中不建议为了省事降低密码策略但学习环境可以按需调整长度和复杂度要求。接着创建一个业务账号并授权CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER app% IDENTIFIED BY 密码; GRANT ALL PRIVILEGES ON app_db.* TO app%; FLUSH PRIVILEGES;需要注意app%表示允许任意主机连接生产环境通常建议把%替换为应用服务器的具体 IP缩小暴露面。验证数据库可以正常访问mysql -uapp -p -h 127.0.0.1 app_db到这里Nginx 和 MySQL 的最小可用部署都完成了。你会发现整个过程的核心不是“安装包”本身而是理解服务管理、配置文件路径、日志位置和权限边界。这套方法论完全可以迁移到其他中间件上。9. Linux 运维常见问题与排查思路下面整理了初学者和初级运维最容易踩的几类问题按排查逻辑给出解决路径。问题现象常见原因解决思路命令找不到软件未安装或 PATH 环境变量不包含该路径which 命令查看echo $PATH检查路径端口被占用已经有进程监听该端口ss -lntp | grep 端口号找到占用进程确认是否可停磁盘空间满日志文件或临时文件过大df -h确认分区du -sh /*定位大目录服务启动失败配置文件语法错误、端口被占用、依赖服务未启动systemctl status 服务名journalctl -u 服务名 -n 50查看具体报错远程连接超时IP 地址错误、防火墙拦截、SSH 服务未启动ping测连通性telnet IP 22测端口MySQL 登录密码错误临时密码未正确查看或密码被修改过查看/var/log/mysqld.log或按官方方式重置权限不足当前用户没有对应目录或文件的权限ls -l检查权限必要时用 sudo系统负载高程序异常、流量突增、内存不足触发频繁 swaptop看 CPUfree -h看内存分析进程占用排查故障时有一个原则很重要不要凭感觉乱试要先缩小范围。比如用户说“网站打不开”先把问题分成几层本机能不能访问 Nginx 默认页不能就是 Nginx 或者网络问题。Nginx 能不能访问后端应用不能就是后端服务问题。后端应用日志报什么错重点看最近 100 行日志。这样一层层定位而不是上来就重启服务效率会高很多也给团队留下完整的排查记录。10. 最佳实践与工程建议10.1 初始化操作要形成标准每台新服务器上线建议按照固定的初始化清单执行更新系统补丁dnf update -y。修改 SSH 端口并禁止 root 直接登录。创建普通运维用户并配置 sudo。配置防火墙默认拒绝未放行端口。配置时间同步。修改主机名规划统一的命名规范。设置历史命令时间戳方便审计。历史命令时间戳配置可以加入/etc/profileexport HISTTIMEFORMAT%F %T 这样执行history时可以看到每条命令的执行时间对事后排查和审计非常有帮助。10.2 最小权限与安全边界无论是系统用户、数据库账号还是 sudo 配置都应该遵循最小权限原则。应用服务使用独立用户运行不要全部跑在 root 下。数据库账号只授权业务需要的库和权限比如只读账号就只给 SELECT。后台管理类的中间件控制台不要暴露到公网。关于云服务器安全组规则要谨慎开放只放行业务必须的端口。SSH 可以考虑使用密钥登录而不是密码登录这是目前最推荐的远程登录方式。10.3 一切变更都要可回滚在服务器上做任何变更前先问自己三个问题变更影响范围是什么失败怎么恢复是否在低峰期执行以修改配置文件为例先备份原始文件cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date %F)然后再执行修改。如果应用有发布流程务必确认有版本回滚方案。对于数据库变更尤其是 DELETE 和 UPDATE一定要在事务中执行先 SELECT 确认影响行数再执行变更。没有备份就没有恢复生产库上这种风险不值得冒。10.4 日志与监控要提前规划等到故障发生了再装监控、配日志往往已经晚了。建议从第一天起就规划好应用日志按天切割避免单个文件无限增长。关键指标采集到监控系统比如 CPU、内存、磁盘、端口存活状态。日志集中存储方便全链路排查。告警规则要收敛重要告警优先避免告警轰炸导致“狼来了”效应。日志切割可以使用系统自带的 logrotate一个简单配置片段如下放在/etc/logrotate.d/app-demo/opt/app-demo/logs/*.log { daily rotate 7 compress missingok copytruncate }10.5 脚本与自动化要适度Shell 脚本能显著提升效率但不要为了自动化而自动化。刚开始时先用脚本处理重复性高的操作比如批量检查服务器磁盘、批量分发配置文件、一键部署应用。写脚本时注意几个习惯脚本开头加上set -e遇到错误立即退出。关键变量做非空校验避免误删。删除类操作前增加确认逻辑。脚本执行日志要记录方便追溯。涉及多台服务器时优先用 ansible 等自动化工具而不是在每台机器上手动执行。11. 面试高频知识点与学习路线建议很多人学完基础后会担心“到底能不能达到就业水平”。这里不灌鸡汤直接告诉你初级运维面试最常考的几个方向Linux 基础命令比如查找文件、查看端口、查看负载、日志分析。用户和权限管理比如创建用户、ACL、sudo 配置。磁盘与文件系统比如 df、du、inode 用完、磁盘满的处理。网络基础比如 TCP/IP 三次握手、端口连通性测试。Shell 脚本基础比如循环、条件判断、定时任务。中间件常识比如 Nginx 反向代理、MySQL 基本操作、Redis 基本使用。故障排查思路比如 CPU 飙高怎么办、磁盘满怎么办、服务启动失败怎么看。如果你能把本文的命令和流程都自己敲一遍并且能不看笔记解释清楚每个命令的作用基本就具备了初级运维的实操基础。下一步建议按顺序深入学习Shell 脚本编程能写自动化部署和巡检脚本。网络基础包括 VLAN、DNS、TCP/IP、HTTP 协议。数据库进阶比如索引、事务、备份恢复、主从复制。监控体系熟悉 Prometheus 或 Zabbix 的搭建与告警配置。自动化运维学习 ansible 或 Python 自动化。容器与编排掌握 Docker 和 Kubernetes 的基础使用。整个学习过程最忌讳的是“只看不练”。你可以在自己的虚拟机上故意制造一些故障比如把 Nginx 配置写错、把磁盘塞满、把服务停掉再想办法恢复。这种刻意练习比看十篇教程都管用。遇到不会的问题优先看官方文档和系统日志再结合社区资料验证。最后说一点实在的运维这个岗位入门门槛不在学历而在“是否真的动手做过”。只要你肯花时间把环境搭起来把命令练熟把服务的启动、停止、排错、配置改明白转行运维是完全可行的。希望这份 Linux 运维入门教程能成为你职业路线上的第一块踏板。
返回列表