备份当前配置和数据
在开始任何更新操作前,先把现有的配置文件和重要数据做个完整备份。比如你管理的是公司内部的文件服务器,里面存着各部门的项目资料,万一更新过程中出问题,没备份就得从头再来。可以使用 rsync 命令把关键目录同步到外部存储:
rsync -av /etc /home /var/www /backup/location/这一步花不了十分钟,但能让你晚上睡得踏实。
检查当前系统版本和更新源
登录服务器后,先看看现在跑的是哪个版本。执行命令:
cat /etc/os-release确认系统类型和代号是否支持最新更新。接着检查软件源地址是否有效,尤其是用了第三方仓库的,比如 Ubuntu 换成了国内镜像站,得确保 mirror.list 里的链接还是通的。一个失效的源会导致整个更新卡住。
更新软件包列表
运行以下命令拉取最新的包信息:
sudo apt update如果是 CentOS 或 RHEL 系统,则用:
sudo yum check-update这步不会安装任何东西,只是告诉系统“外面有哪些新版本可用”。网络慢的时候等一两分钟也正常,别急着按 Ctrl+C。
执行系统升级
确认无误后开始升级已安装的软件包。Debian/Ubuntu 用户输入:
sudo apt upgrade -y如果涉及内核或重大组件变更,建议使用:
sudo apt full-upgrade -yCentOS 用户则执行:
sudo yum update -y过程中可能会弹出配置文件冲突提示,比如 nginx.conf 被你改过。这时候选“保持本地版本”更稳妥,后续手动合并改动。
重启服务或整机
有些更新需要重启才能生效,特别是内核、openssl、systemd 这类底层组件。可以直接重启服务器:
sudo reboot如果你不想中断业务太久,可以先只重启受影响的服务。比如只更新了 PHP,那就:
sudo systemctl restart php7.4-fpm但记住,核心组件更新后不重启等于没更,安全隐患还在。
验证更新结果
重新登录服务器,检查系统版本是否已更新:
uname -r查看服务状态有没有异常:
systemctl status nginx
systemctl status mysql顺便打开网站或应用测试一下功能是否正常。曾经有人更新完发现 SSL 证书路径变了,首页打不开,幸好是早上操作,及时修复没影响客户。
记录操作过程
把这次更新的时间、内容、遇到的问题简单记下来。可以用个文本文件存着,也可以写进运维日志系统。下次再更新时翻一翻,避免重复踩坑。比如某次发现某个插件更新后兼容性有问题,备注一句“跳过 xx 包”,下次就省事了。