小白运维入门必备完整实操手册 小白运维入门必备完整实操手册本文面向零基础 Linux 运维新手整合服务器安全审计、入侵溯源、批量运维、服务高可用、大文件传输、MySQL 一致性备份、防火墙 IP 拦截、流量异常排查、系统资源防护、Docker 容器运维十大核心高频场景。1. 安全溯源历史命令时间戳审计1.1 功能用途给 bash 执行命令绑定精确「年 - 月 - 日 时分: 秒」时间戳入侵、误删、故障后完整还原操作人、操作时间、执行指令是安全审计基础手段。1.2 前置准备系统默认~/.bash_history不记录时间必须配置环境变量HISTTIMEFORMAT临时配置仅当前终端生效永久配置需写入用户登录加载文件权限普通用户仅管控自身命令记录root 可全局配置全服务器用户。1.3 实操命令与参数解析1临时生效当前会话重启 / 重登失效# %F 年-月-日%T 时:分:秒空格分隔时间与命令exportHISTTIMEFORMAT%F %T # 读取带时间戳的全部历史cat~/.bash_history# 快速查看最近100条操作记录history1002永久生效两种方案1仅当前登录用户# 写入用户登录配置文件echoexport HISTTIMEFORMAT%F %T ~/.bashrc# 重载配置不用重新登录source~/.bashrc2全服务器所有用户root 执行echoexport HISTTIMEFORMAT%F %T /etc/profilesource/etc/profile1.4 风险盲区重点忽略项用户执行history -c、直接删除.bash_history会清空全部记录审计失效screen/tmux 跳板机操作、二进制程序、定时任务脚本内操作不会被本机 history 捕获仅 bash 终端生效zsh 等其他 shell 不兼容1.5 进阶加固拓展追加至.bashrc防止历史丢失、去重# 命令执行后实时写入历史异常关机不丢失shopt-shistappendPROMPT_COMMANDhistory -a;$PROMPT_COMMAND# 历史去重最大存储10万条记录exportHISTCONTROLignoredupsexportHISTSIZE100000exportHISTFILESIZE1000001.6 补充完善审计方案单纯 history 存在篡改盲区企业环境搭配auditd系统审计监控文件删除、权限修改、SSH 登录底层行为。2. 登录溯源last /who 排查异常登录2.1 功能用途last读取/var/log/wtmp日志回溯全部历史登录记录排查凌晨、陌生公网 IP 入侵who/w实时查看当前在线用户应急场景快速切断非法 SSH 连接。2.2 前置准备wtmp日志系统自动生成手动删除后永久丢失登录记录日志会按月轮询切割旧记录存放wtmp.1/wtmp.2压缩文件需指定文件读取CentOS、Ubuntu 系统自带两条命令无需额外安装。2.3 实操命令与参数解析last 回溯历史登录# 查看全部登录记录last# 仅筛选root账号登录行为last root# 读取上月归档登录日志last-f/var/log/wtmp.1# 筛选0点-6点凌晨异常登录last|grep00:00输出关键字段登录账号、终端 pts、来源 IP、登录 / 下线时间、在线时长。who /w 实时在线监控# 基础在线用户查看who# 增强版附带CPU占用、用户执行进程推荐w2.4 异常识别标准小白直接套用境外 IP、非公司办公网段公网 IP 登录0:00-6:00 无人值班时段登录系统不存在的用户名、root 异地批量登录。2.5 应急处置操作# pts/1为who查询到的非法终端强制踢下线pkill-kill-tpts/1# 恶意IP直接封禁参考第7章节ipset/iptables2.6 日志丢失补救wtmp 被清空时CentOS 查看/var/log/secure、Ubuntu 查看/var/log/auth.logSSH 登录审计日志。3. 批量运维SSH 单行循环批量改密3.1 功能用途单行 Shell 循环读取 IP 清单远程批量修改多台服务器账号密码适合统一密码轮换场景。3.2 前置准备极易忽略管理机与所有目标服务器已配置 SSH 免密登录否则脚本交互式输入密码卡死新建iplist.txt每行单独填写一台服务器 IP所有服务器预装chpasswdLinux 系统默认自带仅支持账号密码修改不影响 SSH 密钥登录。3.3 基础执行命令与参数解析# 循环读取iplist内所有IPssh远程执行改密foripin$(catiplist.txt);dosshroot$ipecho user:newpass | chpasswd;donecat iplist.txt读取 IP 列表数据源ssh root$ip以 root 账号远程登录目标机器echo user:newpass格式「用户名新密码」| chpasswd管道传递账号密码非交互式修改密码。3.4 致命风险最高优先级命令行明文携带密码会被history完整保存任何登录用户均可查看明文密码生产环境禁止直接使用3.5 优化替代方案小型集群读取本地加密密码文件不直接明文写命令中大型集群使用 Ansible 自动化批量改密全程无明文泄露、自带失败日志、重试机制。3.6 脚本缺陷补充无失败重试逻辑服务器关机 / SSH 断开会直接跳过无报错提示硬编码 root 账号修改普通用户仅替换user:newpass内 user 字段即可。4. 服务高可用Systemd 进程自动保活配置4.1 功能用途配置业务进程崩溃、手动 kill、异常退出后自动拉起实现 7*24 小时不死服务适配 Java/Python/Nginx/ 自定义程序。4.2 前置准备系统版本CentOS7/Ubuntu16.04使用 systemd 管理服务自建服务文件存放路径/etc/systemd/system/xxx.serviceExecStart启动程序必须前台运行后台运行会导致 systemd 判定进程直接退出无法自动重启。4.3 完整服务配置模板与参数解析[Service] # 程序前台启动命令根据业务替换 ExecStart/usr/bin/python3 /opt/app/main.py # 进程运行身份避免root权限滥用 Userroot # 重启策略always任何退出场景都重启 Restartalways # 熔断冷却时间崩溃后等待10秒再重启防止雪崩式反复重启 RestartSec10Restart 参数细分新手极易选错Restartalways业务程序首选正常关闭、崩溃、被 kill 全部自动重启Restarton-failure仅非 0 异常退出码才重启手动执行 stop 关闭不会拉起。4.4 配置生效全套命令# 1. 修改service文件后重载systemd配置必须执行sudosystemctl daemon-reload# 2. 重启服务加载新参数sudosystemctl restart xxx.service# 3. 验证自动重启手动停止观察10秒后是否自动拉起sudosystemctl stop xxxwatchsystemctl status xxx# 4. 设置开机自启systemctlenablexxx.service4.5 故障排查补充查看服务崩溃详细日志journalctl -u xxx.service定位启动报错、内存溢出问题。5. 文件传输split/cat 超大文件拆分合并5.1 功能用途超大日志、镜像文件受单文件上传限制按指定大小切分分片传输传输完成后无损合并避免传输中断全部重传。5.2 前置准备split、cat 系统内置无需额外安装分片前后服务器磁盘剩余空间 ≥ 原文件 2 倍分片占用一份原文件保留一份批量分片传输优先rsync支持断点续传稳定性高于 scp。5.3 拆分文件命令与参数解析源服务器操作# 按1GB大小切分分片前缀log_part_split-b1G access.log log_part_# -b指定分片大小单位支持K/M/G# -l按固定行数拆分日志分析场景专用split-l10000huge.log part_# -d分片使用数字后缀00/01自动化脚本排序不会错乱split-d-b1G access.log log_part_5.4 分片传输命令# scp批量传输所有分片scplog_part_* user目标IP:/data/# rsync断点续传推荐rsynclog_part_* user目标IP:/data/5.5 合并还原命令目标服务器# 按文件名顺序拼接还原完整文件catlog_part_*access.log# 完整性校验可选防止传输损坏# 源服务器生成md5校验值md5sum access.logfile.md5# 目标服务器比对文件哈希md5sum-cfile.md55.6 注意事项默认字母后缀 aa/ab 存在排序风险自动化脚本务必加-d数字后缀文件合并校验 md5 后手动删除分片文件释放磁盘空间。6. 数据库运维MySQL 两种一致性备份方案6.1 功能用途导出完整数据库备份保证备份期间数据一致性分为热备不锁表、冷备全局锁表适配不同存储引擎。6.2 前置准备安装 mysql 客户端账号具备SELECT,LOCK TABLES,RELOAD备份权限区分引擎InnoDB 支持事务快照MyISAM 无事务只能全局锁FTWRL 全局读锁方案必须业务低峰期执行高峰会阻塞全部写入。6.3 方案 1InnoDB 单事务热备生产首选无锁完整命令与参数解析mysqldump --single-transaction --master-data2-uroot-p数据库名backup.sql--single-transaction利用 InnoDB MVCC 事务快照全程不锁表业务正常读写--master-data2备份文件记录 binlog 文件名、偏移量搭建从库、时间点故障恢复PITR必备限制库内存在 MyISAM 表时自动触发锁表失去热备效果。6.4 方案 2全局读锁 FTWRL兼容 MyISAM 冷备分步操作极易遗漏解锁步骤# 第一步锁定全库所有表仅允许读操作FLUSHTABLESWITHREADLOCK;# 新开终端窗口执行导出mysqldump-u root-p 数据库名backup.sql# 【必执行】备份完成手动解锁否则数据库永久只读、业务写入卡死UNLOCKTABLES;6.5 高危风险执行 FTWRL 后会话断开、忘记执行UNLOCK TABLES全库写入永久阻塞线上高频故障点。6.6 备份优化拓展备份同步压缩、按日期命名mysqldump --single-transaction-uroot-ptestdb|gziptestdb_$(date%Y%m%d).sql.gz6.7 备份规范定期拿备份文件测试恢复避免备份文件损坏故障时无法恢复数据。7. 网络安全iptables/ipset 恶意 IP 封禁 持久化7.1 功能用途拦截 SSH 暴力破解、扫描攻击 IP两种方案适配少量临时封禁、海量 IP 长期黑名单补充重启规则持久化解决重启丢失问题。7.2 前置准备防火墙环境为 iptablesfirewalld 不兼容 ipset需关闭切换ipset 手动安装CentOSyum install ipset/ Ubuntuapt install ipset所有规则操作必须 root 权限-I INPUT将规则插入最前端优先拦截恶意 IP不会被放行规则绕过。7.3 方案 1iptables 直接封禁少量 IP 临时拦截# 封禁单个IP拒绝全部入站流量iptables-IINPUT-s192.168.1.100-jDROP# 解封IPiptables-DINPUT-s192.168.1.100-jDROP# 查看全部防火墙规则iptables-L-n适用场景10 个以内临时 IP上万 IP 会造成规则冗长、防火墙匹配性能暴跌。7.4 方案 2ipset 黑名单海量 IP 长期防护完整流程步骤 1创建 IP 集合sudoipset create blacklist hash:ip# hash:ip存储单个IPv4hash:net可存放IP网段步骤 2添加恶意 IP 至黑名单sudoipsetaddblacklist192.168.1.100# 批量导入IP文件循环foripin$(catblack_ip.txt);doipsetaddblacklist$ip;done步骤 3绑定 iptables 拦截规则sudoiptables-IINPUT-mset--match-set blacklist src-jDROP步骤 4解封 / 清空黑名单# 删除单个IPsudoipset del blacklist192.168.1.100# 清空全部黑名单sudoipset flush blacklist# 销毁不再使用的集合sudoipset destroy blacklist7.5 核心规则持久化重启不丢失重点忽略项手动保存当前运行规则# 保存iptables防火墙规则sudoiptables-save/etc/iptables/rules.v4# 保存ipset黑名单集合sudoipset save/etc/ipset.conf开机自动加载配置安装持久化服务CentOSyuminstalliptables-services netfilter-persistent Ubuntuaptinstalliptables-persistent netfilter-persistent设置开机自启sudosystemctlenablenetfilter-persistent开机自动读取两个配置文件完整恢复封禁规则。7.6 应急 拓展误封远程 SSH服务器本地控制台执行ipset flush blacklist清空黑名单自动化拓展抓取 SSH 登录失败日志定时脚本自动将爆破 IP 加入黑名单。8. 流量排查nethogs iftop 双向带宽定位8.1 工具定位区分nethogs进程维度定位占用带宽的本地程序挖矿、恶意外联、日志刷屏iftop连接维度定位服务器通信的外部 IPCC 攻击、数据泄露外联二者搭配完整定位流量源头。8.2 前置准备工具安装CentOSyuminstallnethogs iftop-yUbuntuaptinstallnethogs iftop-y执行必须加sudo普通用户无抓包权限多网卡服务器必须指定网卡名称eth0/eth1否则数据混乱。8.3 nethogs 进程监控命令与字段解析sudonethogs eth0界面字段PID/USER/PROGRAM进程 ID、运行用户、程序名称直接定位异常进程DEV/SEND/RECEIVE绑定网卡、实时上传速率、实时下载速率。8.4 iftop 连接监控命令与字段解析sudoiftop-ieth0界面字段TX/RX/TOTAL服务器总发送、总接收、合计流量/区分本机向外发送、外部传入本机流量列表展示所有外部 IP 实时流速快速识别攻击源 IP。8.5 标准排查流程带宽打满先执行iftop -i eth0找到流量最高恶意外部 IP执行nethogs eth0确认本地哪个程序与该 IP 通信恶意 IP 用 ipset 封禁恶意进程 kill 并清理程序。8.6 注意事项工具长期后台持续抓包占用性能故障排查完成及时退出。9. 系统稳定性OOM 进程保护 limits 用户资源限流模块 9.1 OOM Killer 保护 SSH 核心服务功能原理系统内存耗尽时内核触发 OOM Killer 杀进程SSH 运维通道一旦被杀死服务器彻底无法远程登录OOMScoreAdjust-1000降低进程被杀优先级内核优先杀死业务进程保留管理通道。前置准备仅对 systemd 托管进程生效手动后台启动程序不支持该参数。完整配置步骤编辑 sshd 服务配置sudosystemctl edit sshd.service[Service] 区块添加参数[Service] OOMScoreAdjust-1000重载配置并重启 SSHsudosystemctl daemon-reloadsudosystemctl restart sshd拓展Nginx、MySQL 等核心服务均可添加相同参数保护。模块 9.2 limits.conf 用户资源限流功能用途限制普通用户最大进程数、最大打开文件句柄防止死循环脚本、恶意程序耗尽整机 CPU / 文件资源。前置准备修改后已登录会话不生效用户重新登录才会加载限制规则。配置命令与参数解析编辑全局限制文件sudovim/etc/security/limits.conf用户限制示例baduser 为目标受限用户# soft软限制到达阈值警告可临时突破 baduser soft nproc 100 # hard硬限制绝对不可突破的上限 baduser hard nproc 200 # nofile最大打开文件句柄数数据库/中间件需调高 baduser soft nofile 1024 baduser hard nofile 4096关键注意事项root 用户不要设置过低 nofile/nproc会导致运维操作报错MySQL、Redis 等高并发中间件用户nofile 硬限制建议调整至 65535。10. 容器运维Docker 日志轮转杜绝磁盘占满10.1 风险背景Docker 默认无日志大小限制高频业务日志会让容器 log 膨胀至数十 GB直接耗尽磁盘、容器崩溃宕机。10.2 前置准备修改daemon.json为全局配置仅新创建容器自动生效存量旧容器不会应用规则极易忽略。10.3 完整配置命令与参数解析编辑 Docker 守护进程配置sudovim/etc/docker/daemon.json写入日志限制配置{log-driver:json-file,log-opts:{max-size:10m,max-file:3}}参数解析max-size:10m单个日志文件上限 10MB达到阈值自动切割max-file:3最多保留 3 份历史备份自动删除最旧日志总占用上限 单文件大小 × 备份数量可根据磁盘空间调整。重启 Docker 加载配置sudosystemctl restartdocker10.4 致命踩坑点JSON 语法严格校验格式错误会导致 Docker 启动失败修改后可执行dockerd reload预校验存量旧容器必须删除重建才能应用日志轮转规则不要设置过小 max-size会产生大量分片日志影响日志检索效率。11. 服务兜底两种进程自动重启方案对比方案 1while 循环脚本临时应急不推荐生产长期使用示例代码监控 Nginxwhile!systemctl is-active nginx;dosystemctl restart nginx;sleep5;done优缺点✅ 优点无需修改系统配置临时故障快速兜底上手简单❌ 缺点终端会话关闭、脚本进程被 kill 后直接失效无系统级守护稳定性差适用场景开发测试环境临时兜底、短期应急修复。方案 2Systemd 内置自动重启生产标准最佳实践核心配置模板[Service] # 任何退出场景全部自动重启 Restartalways # 熔断冷却5秒防止短时间无限循环重启耗尽资源 RestartSec5生效命令sudosystemctl daemon-reloadsudosystemctl restart nginx优缺点✅ 优点systemd 系统进程托管服务器重启、会话断开、进程崩溃均不会失效自带熔断机制❌ 缺点需要修改 service 配置文件操作步骤更多适用场景线上所有常驻业务程序Linux 官方高可用最佳实践。11.3 企业级进阶拓展单机自动重启仅基础兜底大型架构搭配 Prometheus/Zabbix 监控实时检测服务状态、CPU / 内存指标异常推送钉钉 / 短信告警通知运维高级策略连续重启失败后停止拉起避免雪崩故障。全文总总结本手册整合 Linux 运维 11 大刚需模块统一补齐命令前置依赖、参数逐行解析、生效规则、线上风险盲区、实操校验步骤删除上下篇重复内容覆盖新手从安全审计、入侵排查、批量自动化、服务稳定性、文件传输、数据库备份、网络防护、流量故障、内存资源管控、容器运维全场景。所有操作区分「临时应急方案」与「生产标准方案」明确每种命令适用边界与高危操作风险零基础运维可直接作为日常排查、配置加固常备参考文档。