服务器上的操作核心就是“保证业务不中断,数据不丢失,性能不拖后腿”,日常动作可以归纳为系统维护、安全加固、部署发布、性能监控和备份恢复五类,无论你管的是物理机、虚拟主机还是云服务器,每天和服务器打交道无非就是这五件事的排列组合。
下面我以一台常见的Linux云服务器为例,把服务器上的操作按场景拆开讲清楚,你会发现,服务器不是玄学,它就是一台需要你定期关心、偶尔动手的老伙计。
服务器日常维护操作有哪些?从硬件到系统的例行巡检
服务器日常维护操作有哪些?说白了就是“勤快点,别等它生病”,多数情况下,服务器宕机前都有征兆,只是没人看,例行巡检可以按频率分成两部分:
每天该看的几个信号
- 系统负载:用
uptime看平均负载,如果长时间超过CPU核数,说明资源吃紧。 - 磁盘空间:
df -h检查根分区和业务分区使用率,超过80%就要清日志或扩盘。 - 内存和Swap:
free -m看内存剩余,Swap用得多说明物理内存不足。 - 登录异常:
last -n 20查看最近登录记录,发现陌生IP直接排查。
每周或每月要做的深度维护
- 清理系统日志:
journalctl --vacuum-time=7d只保留最近7天日志,或者用logrotate做自动切割。 - 更新系统补丁:
yum update或apt update && apt upgrade,但生产环境最好先在测试机验证。 - 检查内核日志:
dmesg -T | tail -50看看有没有磁盘I/O错误、温度警告或PCIe报错。 - 同步系统时间:
timedatectl set-ntp true,NTP漂移会导致定时任务乱跑、证书验证失败。
这里有个容易忽略的坑:很多人只关注CPU和内存,却忽视磁盘inode耗尽。df -i 一查才发现inode用满,即使还有空间也写不进文件,这类问题恰恰藏在“日常维护”清单里。
服务器安全配置操作指南:SSH加固与防火墙规则
服务器安全配置操作指南是运维人员最常搜索的题目,因为大部分入侵事件都源于“裸奔”,安全不是装个杀毒软件就完事,而是从入口到出口层层设卡。
SSH远程访问加固:第一步就是改掉默认习惯
- 修改默认端口:把22改成10022(任意不常用端口),减少被脚本扫描的概率。
- 禁用root直接登录:在
/etc/ssh/sshd_config里设置PermitRootLogin no,平时用普通用户加sudo提权。 - 开启密钥认证:用
ssh-keygen生成密钥对,把公钥放到~/.ssh/authorized_keys,然后禁用密码登录。 - 限制来源IP:如果办公出口IP固定,在
hosts.allow里只放行你的IP,其他全拒。
防火墙规则:只开放业务需要的端口
用 firewalld 或 iptables 都行,原则是“默认拒绝,按需放行”,例如一个Web服务器只需要80和443端口,那就把其他端口全关掉:
firewall-cmd --permanent --add-port=80/tcpfirewall-cmd --permanent --add-port=443/tcpfirewall-cmd --reload
同时要关注云控制台的安全组,很多云服务器有双重防火墙系统防火墙和安全组,两边都得配好,缺一个等于白配。
安全更新与入侵检测
- 开启自动安全更新,至少对内核和openssl这类核心组件及时打补丁。
- 安装
fail2ban,自动封禁连续输错密码的IP。 - 定期用
chkrootkit或rkhunter扫一遍后门和Rootkit,不用天天跑,每周一次足够。
业内专家指出,相当一部分安全事件源于弱口令和未打补丁的旧组件,把这两件事管住,服务器安全就成功了七成。
云服务器部署网站流程:从初始化到正式上线
云服务器部署网站流程看着繁琐,实际按步骤走,十几分钟就能搞定,这里以部署一个WordPress站点为例,框架应用同理。
环境初始化:先做三件事
- 更新系统:
apt update && apt upgrade -y - 创建非root用户:
adduser deploy && usermod -aG sudo deploy - 配置SSH密钥:从本机
ssh-copy-id deploy@服务器IP,之后用新用户登录
安装运行环境:Nginx + PHP + MySQL
- 安装Nginx:
apt install nginx - 安装PHP:
apt install php-fpm php-mysql - 安装MySQL:
apt install mysql-server
安装完成后,把服务启动并设为开机自启:
systemctl start nginx && systemctl enable nginxsystemctl start mysql && systemctl enable mysql
部署代码:上传、配置、测试
- 用
scp或rsync把代码包传到服务器,rsync -avz ./wordpress/ deploy@IP:/var/www/html/ - 给运行目录改权限:
chown -R www-data:www-data /var/www/html - 创建Nginx站点配置,指向你的域名和根目录。
- 申请SSL证书:
apt install certbot && certbot --nginx -d example.com - 最后打开浏览器访问,看到页面即成功。
这里提醒一句:部署不只是“把文件传上去”,还要做回滚预案,上线前把旧代码打包留存,出问题能一分钟切回去,很多新手栽在“没备份就覆盖”上。
服务器性能监控操作:用工具而不是靠感觉
服务器性能监控操作已经成了运维标配,别问“服务器卡不卡”,问就问监控数据在哪里,常用工具和场景如下:
| 工具 | 监控重点 | 适合场景 |
|---|---|---|
top / htop |
CPU、内存、进程 | 实时快速查看系统健康状况 |
vmstat |
CPU、内存、I/O队列 | 判断系统层面瓶颈 |
iostat |
磁盘读写、利用率 | 排查磁盘I/O等待问题 |
iftop |
网络带宽、连接IP | 看谁在占用带宽 |
netstat / ss |
端口、连接状态 | 排查网络连接数异常 |
| Prometheus + Grafana | 全维度历史数据 | 生产环境长期监控和告警 |
日常排查的实操步骤
- 发现变慢时,先跑
top看哪个进程CPU高。 - 再用
vmstat 1 5观察r(运行队列)和wa(I/O等待)数值。 - 如果是磁盘问题,
iostat -dx 1能看出具体哪块盘忙。 - 网络层面用
iftop看实时流量,顺手抓个tcpdump分析。
一个容易被忽略的监控点是慢查询日志,数据库CPU飙高,十有八九是SQL写得烂,打开MySQL慢日志,记录超过1秒的查询,逐条优化,比盲目加内存有效得多。
数据库与数据备份操作:守住最后一道防线
备份是服务器操作里最枯燥但最不能省的环节,行业共识认为,没做过恢复演练的备份都等于没备份,备份操作主要管三件事:
备份策略怎么定
- 全量备份:每天一次,把整个数据库或站点目录完整复制。
- 增量备份:每小时或每6小时一次,只备份变化的数据。
- 差异备份:每周一次,备份自上次全量以来的所有变化。
对于中小企业站点,每天全量 + 每6小时增量已经够用,核心业务系统可以考虑实时同步到异地。
常用备份方法
- 数据库备份:用
mysqldump导出SQL文件,mysqldump -u root -p --single-transaction appdb > appdb.sql - 文件备份:直接用
tar打包/var/www/html,或者用rsync同步到备份服务器。 - 云快照:在云控制台里给磁盘做快照,几分钟完成,恢复也快。
恢复演练必须做
备份文件放在服务器上等于没备份,因为服务器挂了备份也没了,至少把备份同步到另一台机器或对象存储,另外每季度做一次恢复测试:在测试环境导入备份,确保数据能读、网站能跑、密码不报错。
服务器运维中常见的两个疑问
服务器日常维护需要每天都做吗?
不一定,个人开发服务器可以每周看一次,但生产环境至少每天看一眼负载、磁盘和登录日志,你不需要花几小时,uptime、df -h、last 三连敲完,10秒内就能确认基本健康状况。
服务器性能监控工具有哪些适合新手?
如果预算有限,先用 htop 加 iotop 手动看,再配一个crontab定时记录 vmstat 日志,如果团队有运维基础,直接上Prometheus加Grafana,趋势图和告警规则都能自定义,新手别一上来就追求复杂工具,先把手动排查命令练熟,才能看懂监控图里的异常。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/698516.html





