系统优化

飞牛NAS定期维护清单:周/月/季度

2026-07-30 7 admin

飞牛NAS作为一款轻量级、高度可定制的NAS系统,其稳定运行离不开定期的维护。很多用户往往在遇到问题(如磁盘满、系统卡顿、服务宕机)时才去处理,但更高效的方式是建立一套预防性维护计划。本文将为你整理一份从周、月到季度的维护清单,附带具体命令和操作步骤,帮助你保持飞牛NAS的最佳状态。

一、为什么需要定期维护?

飞牛NAS底层基于Linux,其文件系统(如Btrfs、ext4)、Docker容器、以及各类服务(Samba、NFS、WebDAV)在长期运行中会产生日志堆积、碎片化、缓存膨胀等问题。定期维护可以: - 提前发现磁盘坏道或SMART异常 - 清理无用日志和临时文件,释放空间 - 检查Docker容器和服务的健康状态 - 避免因系统更新导致的兼容性问题

二、每周维护(15-20分钟)

每周维护聚焦于状态检查基础清理,适合在周末进行。

1. 系统负载与内存检查

# 查看系统负载(load average)
uptime

# 查看内存使用
free -h

# 查看磁盘I/O等待(wa字段)
top -n1 | grep "Cpu(s)"

预期结果:load average应小于CPU核心数;内存使用率应低于80%(若长期高位,需排查进程);wa字段应低于5%。

2. 磁盘空间快速扫描

# 查看各分区使用率
df -h

# 找出占用最大的目录(从根目录开始,建议先跳转到 /)
cd /
du -sh * | sort -rh | head -10

操作提示:若 /var/log/tmp 占用异常,进入对应目录执行 du -sh * | sort -rh 定位大文件。

3. 检查Docker容器状态

# 列出所有容器(包括停止的)
docker ps -a

# 查看容器资源占用
docker stats --no-stream

关键点:注意 STATUS 列中是否有 ExitedRestartingUnhealthy 的容器。若有,执行 docker logs <容器名> 查看错误日志。

4. 系统日志快速审查

# 查看最近20条系统级错误
journalctl -p err -n 20 --no-pager

# 检查Docker守护进程日志
journalctl -u docker -n 10 --no-pager

注意:若发现大量重复错误(如 kernel: BTRFS error),需立即进入月度维护的磁盘扫描。

三、每月维护(30-45分钟)

月度维护涉及磁盘健康检测系统更新深度清理

1. 磁盘SMART检测

# 查看所有磁盘列表
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT

# 对系统盘(如 /dev/sda)执行快速SMART检查
smartctl -H /dev/sda

# 执行短自检(约2分钟)
smartctl -t short /dev/sda

# 等待自检完成后查看结果(通常需等2分钟)
smartctl -l selftest /dev/sda

解读SMART overall-health 应为 PASSEDSelf-test execution status 应为 Completed without error。若出现 FAILEDRead Failure,立即备份数据。

2. 文件系统完整性检查

若你的数据卷使用Btrfs(飞牛默认推荐),执行:

# 只读扫描,检查文件系统错误
btrfs device stats /path/to/mountpoint

# 执行只读校验(不修复,仅报告)
btrfs scrub start -B /path/to/mountpoint

对于 ext4 分区:

# 卸载后检查(需先停止所有访问该分区的服务)
umount /dev/sdb1
fsck -C /dev/sdb1
mount /dev/sdb1 /mnt/data

注意btrfs scrub 速度取决于磁盘容量,1TB约需1-2小时,建议在低负载时段执行。

3. 系统与软件包更新

# 更新软件包列表
apt update

# 查看可更新列表
apt list --upgradable

# 执行更新(建议先备份重要数据)
apt upgrade -y

# 重启可能需要的服务(如Samba、NFS)
systemctl restart smbd nmbd

安全建议:更新前执行 apt list --upgradable 查看更新内容,若包含内核或bootloader更新,建议计划重启。

4. Docker镜像与容器清理

# 删除停止的容器
docker container prune -f

# 删除未被使用的镜像
docker image prune -a -f

# 删除所有未使用的构建缓存(可选)
docker builder prune -f

# 查看清理后空间占用
docker system df

清理效果:通常可释放数百MB至数GB空间,尤其对于频繁拉取测试镜像的用户。

5. 日志轮转配置检查

飞牛NAS默认使用 logrotate,但需确认规则是否生效:

# 强制轮转日志并查看状态
logrotate -f /etc/logrotate.conf
cat /var/lib/logrotate/status | grep "systemd-journal"

若发现日志文件(如 /var/log/syslog)过大,可手动修改 /etc/logrotate.d/ 下的相关配置,增加 rotate 数量或缩短 dailyweekly

四、季度维护(1-2小时)

季度维护属于深度清理配置审计,建议在系统负载最低的时段(如凌晨)执行。

1. 磁盘全面自检

# 执行长自检(可能持续数小时,建议计划任务执行)
smartctl -t long /dev/sda

# 查看自检进度
smartctl -l selftest /dev/sda

# 完成后查看详细属性,重点关注以下指标:
# - Reallocated_Sector_Ct: 应接近0
# - Current_Pending_Sector: 应接近0
# - Temperature_Celsius: 应在40°C以下
smartctl -A /dev/sda | grep -E "Reallocated|Pending|Temperature"

阈值警报:若 Reallocated_Sector_Ct 超过10,或 Current_Pending_Sector 出现非零值,建议立即更换硬盘。

2. 系统日志归档

# 归档并压缩旧日志(保留最近30天)
journalctl --vacuum-time=30d

# 手动清理旧系统日志文件
find /var/log -name "*.log.*" -mtime +90 -delete

# 清空Docker容器日志(谨慎:清空后不可恢复)
for container in $(docker ps -q); do
    truncate -s 0 /var/lib/docker/containers/$container/$container-json.log
done

注意:清空Docker日志前,建议先通过 docker logs --tail 100 <容器名> 确认无重要信息。

3. 备份关键配置

# 备份网络配置
cp /etc/netplan/*.yaml /path/to/backup/

# 备份Samba配置
cp /etc/samba/smb.conf /path/to/backup/

# 备份Docker Compose文件(假设在 /docker 目录)
tar -czf /path/to/backup/docker-configs-$(date +%Y%m%d).tar.gz /docker/*.yml

# 备份飞牛系统配置(若路径已知)
tar -czf /path/to/backup/fnOS-config-$(date +%Y%m%d).tar.gz /etc/fnos/

最佳实践:将备份文件存储在另一个NAS或云存储中,避免单点故障。

4. 网络与连接审计

# 查看开放端口列表
ss -tuln

# 检查是否有未授权的SSH登录尝试
lastb | head -20

# 测试网络延迟
ping -c 10 8.8.8.8

安全建议:关闭非必要的端口(如Telnet、FTP),若SSH公网暴露,建议修改默认端口并使用密钥登录。

5. 磁盘碎片整理(仅HDD)

对于机械硬盘(HDD),季度碎片整理可提升读取性能:

```bash

安装碎片整理工具

apt install e2fsprogs

对ext4分区执行碎片整理

e4defrag /dev/sdb1

查看碎片率

e4defrag -c