磁盘管理与 LVM 在线扩容实战
磁盘管理与 LVM 在线扩容实战磁盘告警(/ 使用率 90%)是运维半夜被叫醒的高频原因。给磁盘规划做对了两件事——用 LVM、留扩容路径——大多数告警都能在业务无感的情况下解决。这篇是磁盘管理的完整实战。 一、分区表:MBR vs GPT 对比项 MBR GPT 最大容量 2TB 大得多 主分区数 最多 4 个 128 个 工具 fdisk parted / gdisk 场景 小于 2T 的盘 大于 2T 的盘必须 GPT 一条判断记住:小于 2T 用 fdisk(MBR),大于 2T 用 parted(GPT)。 二、RAID 选型:一句话对比 级别 最少磁盘 可用容量 容错 特点 典型场景 RAID0 1 100% 无 最快最脆,坏一块全丢 缓存/临时数据,生产几乎不用 RAID1 2 50% 1 块 完全镜像,安全但写慢 系统盘、关键小数据 RAID5 3 (n-1)/n 1 块 均衡,坏 1 块靠校验重建 通用业务盘(非数据库) RAID10 4 50% 每组 1 块 先镜像再条带,快且安全 ...
iptables 防火墙实战:四表五链与 NAT 转发
iptables 防火墙实战:四表五链与 NAT 转发iptables 劝退很多人是因为命令又多又碎。但只要先把”四表五链 + 数据包流向”这个架构想明白,规则就是往架构里填句子。这篇从架构讲起,配合两个真实的 NAT 落地方案。 一、架构:四表五链 + 数据包流向iptables 是操作内核 netfilter 的用户态工具,不是服务。规则存在内核内存,重启丢失,需手动保存。 四张表决定”干什么”: 表 作用 挂的链 filter 过滤(默认表):放行/丢弃 INPUT, FORWARD, OUTPUT nat 地址转换:改 IP/端口 PREROUTING, POSTROUTING, OUTPUT mangle 改包属性(TTL/TOS/MARK) 全部链 raw 绕过连接跟踪(高级优化) PREROUTING, OUTPUT 五条链决定”什么时候干”: 链 触发时机 PREROUTING 路由判断前(进门) INPUT 目的=本机,进入进程前 FORWARD 本机转发(当路由器...
网络管理与 SSH 安全加固实战
网络管理与 SSH 安全加固实战网络是运维的”水电煤”——不通就什么都干不了,而 SSH 又是唯一的管理通道,它的安全等级直接决定服务器被不被攻破。这篇把网络基础配置和 SSH 加固基线完整过一遍。 一、网卡与 DNS 配置CentOS 7 系网卡配置在 /etc/sysconfig/network-scripts/ifcfg-eth0: 123456789TYPE=EthernetBOOTPROTO=none # 服务器用固定 IP:none/static;笔记本才用 dhcpNAME=eth0DEVICE=eth0ONBOOT=yes # 开机自动启用IPADDR=10.0.8.11 # 内网固定 IP(本机局域网内唯一)PREFIX=24GATEWAY=10.0.8.1DNS1=223.5.5.5 # 阿里云公共 DNS 改完必须重启网络服务生效:systemctl restart network。 DNS 排查三连: 123cat /etc/resolv.conf # 本机 DNS 配置cat /etc/h...
文件系统深入:inode、软硬链接与高效查找
文件系统深入:inode、软硬链接与高效查找文件系统相关的故障往往最反直觉:df -h 明明有空间却写不进去、删了大文件空间却没变、文件名带特殊字符删不掉。这篇从 inode 机制讲起,把这类问题的原理和解决办法收在一起。 一、inode:文件系统里最被低估的概念文件在磁盘上分两部分:inode(存放元数据:权限、属主、大小、指向数据块的指针)和数据块(真正的内容)。文件名只是 inode 的一个”门牌”。 123ls -i 文件名 # 查看 inode 号stat 文件名 # inode 的完整元数据df -i # 看 inode 使用率(IUse% 是否 100%) 经典故障:磁盘有空间但写不进去。df -h 还剩 20G,但建文件报 No space left on device——查 df -i,IUse% 100%,全是小文件把 inode 耗尽了。定位小文件最多的目录: 1find /data -type f | cut -d/ -f3 | sort | uniq -c | sort -nr | head -...
用户权限与 sudo 提权规范实践
用户权限与 sudo 提权规范实践接手一套生产环境时,我最先看的就是账号体系:有多少人知道 root 密码、普通用户被授了什么权。账号体系乱的环境,安全事件只是时间问题。这篇整理一套可落地的用户与提权规范。 一、用户分类与 UID 规划 用户类型 UID 用途 root(管理员) 0 系统管理 普通用户 1000+ 登录操作 虚拟用户 1-999 跑服务用(mysql、nginx 等),不可登录 生产铁律:任何对外服务绝不用 root 跑,每个服务建独立虚拟用户,权限最小化。 用户管理的几个关键文件: /etc/passwd:用户信息(密码位永远是 x,真正的密码在 shadow) /etc/shadow:加密后的密码 /etc/group:组信息 /etc/skel/:新用户家目录的模板 12345678# 创建普通用户useradd ops# 创建虚拟用户:指定 UID/GID、不建家目录、禁止登录groupadd -g 888 appuseradd -u 888 -g 888 -M -s /sbin/nologin app# 删除用户(-r 连文件...
进程与性能排查实战:从 ps/top 到负载分析
进程与性能排查实战:从 ps/top 到负载分析“服务器变慢了”是运维收到最多的反馈,但它背后可能是 CPU、内存、磁盘 IO、网络任意一环的问题。这篇把排查思路和工具串成一条完整的链路,遇到问题按顺序走,很少会抓瞎。 一、排查思路:先定位资源,再定位进程标准四问: 谁在吃 CPU?→ top / ps aux --sort=-%cpu 谁在吃内存?→ free -h / top / ps aux --sort=-%mem 谁在等 IO?→ top(看 D 状态)/ iostat 谁在占端口/文件?→ lsof / ss 二、ps:进程快照12345ps aux # 完整信息(%CPU %MEM STAT)ps -ef # 完整格式(含 PPID、启动时间)ps aux --sort=-%cpu | head -20 # 按 CPU 排序ps aux --sort=-%mem | head -20 # 按...
软件包管理避坑指南:Yum / Apt 换源与生产实践
软件包管理避坑指南:Yum / Apt 换源与生产实践软件管理是所有 Linux 操作的入口,装错了源、乱跑了 update,轻则环境不可用,重则直接干崩生产。这篇把两系包管理的日常操作和生产避坑点整理成一份清单。 一、先建立两层结构的心智模型不管哪个发行版,软件管理都是两层: 高层工具(自动解决依赖):RedHat 系 yum/dnf、Debian 系 apt/apt-get——生产中 99% 的场景用它们; 底层工具(只管单个包):rpm、dpkg——只在装本地安装包、排查依赖时用。 配置文件位置:RedHat 系在 /etc/yum.repos.d/(每个 .repo 一个源),Debian 系在 /etc/apt/sources.list 和 sources.list.d/。 二、RedHat 系日常操作1234567891011121314# 安装yum install -y nginx # -y 自动确认(脚本里必须加)yumdownloader --resolve nginx # 只下载不安装(排查依赖问题用)# 查询...
日志排查体系:journalctl 与生产日志轮转
日志排查体系:journalctl 与生产日志轮转线上出故障时,第一步永远是翻日志。但日志查得好不好,直接决定定位问题的速度。这篇整理 systemd 生态下 journald / journalctl 的完整用法,以及生产环境怎么把日志管住、不爆盘。 一、journalctl:集中式日志查询systemd 自带 systemd-journald 守护进程,把内核消息、系统服务、自定义服务的输出全部收集进一个二进制数据库(/run/log/journal/ 或持久化后的 /var/log/journal/)。journalctl 就是查询它的工具。 一句话说清它的定位:”journalctl 是 systemd 生态的日志查询命令,集中管理所有 systemd 单元和内核日志,支持结构化过滤和持久化存储。” 常用查询1234567891011121314151617181920# 看某个服务的日志(生产最常用)journalctl -u nginx.servicejournalctl -u nginx -f # 实时跟踪(类似 tail -f)...
Systemd 服务管理实战:从 Unit 编写到日常运维
Systemd 服务管理实战:从 Unit 编写到日常运维把一套应用从”手动 nohup 启动”改成 systemd 托管,是运维规范化里回报最高的一件事——开机自启、崩溃拉起、日志集中、权限隔离一次全解决。这篇把从零手写 .service 到日常运维的完整过程捋一遍。 一、先理解三个角色 .service 文件 = 一份”岗位说明书”:写明怎么启动、怎么停止、什么情况下重启; systemctl = 操作指令:对服务执行 start / stop / enable / status; systemd = 管理进程:负责读懂说明书、监控所有服务。 现代主流 Linux 全部用 systemd,老掉牙的 SysV init 那套(/etc/inittab、rc.local 塞脚本)只在新装系统时偶尔遇见,不建议再往里写东西。 二、.service 文件的三段式每个 Unit 文件由 [Unit]、[Service]、[Install] 三部分构成,缺一不可。放在 /etc/systemd/system/(管理员自定义,优先级最高)或 /usr/lib...
Linux 发行版选型与系统初始化实践
Linux 发行版选型与系统初始化实践新项目立项时,第一个要拍板的技术决策往往不是中间件,而是服务器操作系统选什么。这个选择会影响后面两三年里所有服务的部署方式、排障手段和团队的知识积累。分享一下我这边沉淀下来的选型逻辑和初始化流程。 一、发行版选型:先看业务形态Linux 发行版分两大主流派系,国内生产环境基本只在这两系里选: 派系 代表发行版 包管理 典型场景 RedHat 系 RHEL、CentOS、Rocky Linux、AlmaLinux rpm + yum/dnf 金融、运营商、政企等传统企业,占比最高 Debian 系 Debian、Ubuntu Server deb + apt 互联网公司、云原生/K8s 生态 选型上我的判断标准有两条: 团队熟悉度优先。维护成本里最贵的不是软件授权,是团队踩坑经验的积累。上一套系统工程师熟的发行版,比”据说更好”的陌生发行版值钱得多。 看未来的支持周期。CentOS 8 提前停服、CentOS 7 也在 2024 年走到尽头后,新项目我会优先 Rocky Linux / AlmaLinu...
