Skip to content

Linux 服务器维护清单

定期维护 Linux 服务器是确保系统稳定性、安全性和性能的关键。 以下是一份全面的 Linux 服务器维护清单,涵盖日常、每周、每月和按需执行的任务。这些任务旨在帮助系统管理员优化服务器运行、防止故障并增强安全性。

每日维护任务

  1. 检查系统日志

    • 查看系统日志文件(如 /var/log/syslog/var/log/messages),以识别异常活动、错误或潜在问题。
    • 使用工具如 taillessjournalctl 实时监控日志。
    • 示例命令:
      bash
      tail -f /var/log/syslog
      journalctl -u sshd
  2. 监控系统资源

    • 检查 CPU、内存、磁盘和网络使用情况,确保资源未被过度占用。
    • 使用工具如 tophtopfreevmstat 进行实时监控。
    • 示例命令:
      bash
      top
      free -m
      df -h
  3. 验证备份状态

    • 确保每日备份按计划执行,验证备份文件的完整性和可用性。
    • 检查备份存储空间是否充足,并确认恢复点目标(RPO)符合要求。
    • 示例工具:rsynctar 或专用备份软件(如 Bacula、Amanda)。
  4. 检查系统更新

    • 查看是否有可用的安全更新或补丁,尤其是针对关键软件包(如内核、SSH、Web 服务器等)。
    • 使用包管理工具检查更新:
      bash
      sudo apt update && apt list --upgradable  # Debian/Ubuntu
      sudo yum check-update                   # CentOS/RHEL
  5. 监控服务状态

    • 确保关键服务(如 Apache、Nginx、MySQL、SSH 等)正常运行。
    • 使用 systemctlservice 命令检查服务状态:
      bash
      systemctl status apache2
      systemctl status sshd

每周维护任务

  1. 审查安全日志

    • 深入分析安全相关日志(如 /var/log/auth.log/var/log/secure),检查是否存在未经授权的登录尝试或其他可疑活动。
    • 使用工具如 fail2banlogwatch 自动化检测异常行为。
  2. 清理临时文件和缓存

    • 删除不再需要的临时文件、旧日志或缓存文件,以释放磁盘空间。
    • 示例命令:
      bash
      sudo find /tmp -type f -atime +10 -delete
      sudo journalctl --vacuum-time=7d
  3. 检查磁盘使用情况

    • 使用 dfdu 命令监控磁盘空间使用率,防止磁盘满载导致服务中断。
    • 示例命令:
      bash
      df -h
      du -sh /var/log/*
  4. 验证用户账户

    • 检查系统用户账户,禁用或删除不再需要的账户,确保没有异常账户被创建。
    • 示例命令:
      bash
      cat /etc/passwd
      lastlog
  5. 测试网络连接

    • 使用工具如 pingtraceroutenetstat 检查网络连接性和服务可达性。
    • 示例命令:
      bash
      ping -c 4 google.com
      netstat -tuln

每月维护任务

  1. 更新系统和软件

    • 应用所有可用更新,包括操作系统内核、软件包和应用程序。
    • 在生产环境更新前,建议在测试环境中验证更新。
    • 示例命令:
      bash
      sudo apt upgrade -y  # Debian/Ubuntu
      sudo yum update -y   # CentOS/RHEL
  2. 检查系统安全性

    • 运行安全扫描工具(如 LynisChkrootkitClamAV)检查系统漏洞或恶意软件。
    • 确保防火墙规则(如 iptablesfirewalld)配置正确。
    • 示例命令:
      bash
      sudo lynis audit system
      sudo clamscan -r / --bell -i
  3. 优化数据库

    • 对数据库(如 MySQL、PostgreSQL)执行优化和维护任务,如清理无用数据、重建索引或分析表。
    • 示例命令(MySQL):
      bash
      mysqlcheck -A --auto-repair
  4. 审查备份策略

    • 评估备份策略的有效性,测试备份恢复流程,确保数据可恢复。
    • 考虑异地备份以提高容灾能力。
  5. 检查硬件健康状态

    • 使用工具如 smartctl 检查磁盘健康状态,监控硬件错误或故障预警。
    • 示例命令:
      bash
      sudo smartctl -a /dev/sda

按需维护任务

  1. 内核和固件更新

    • 在有重大安全补丁或性能改进时,升级系统内核或硬件固件。
    • 重启服务器以应用内核更新,并监控系统稳定性。
    • 示例命令:
      bash
      sudo apt dist-upgrade  # Debian/Ubuntu
      sudo yum update --security  # CentOS/RHEL
  2. 审查防火墙和网络策略

    • 定期检查防火墙规则和网络配置,确保只开放必要的端口和服务。
    • 示例命令:
      bash
      sudo iptables -L -v -n
      sudo firewall-cmd --list-all
  3. 性能调优

    • 根据系统负载调整配置,例如优化 Web 服务器(Apache/Nginx)或数据库参数。
    • 使用工具如 iotopsar 分析性能瓶颈。
  4. 灾难恢复演练

    • 定期模拟灾难恢复场景,测试备份恢复和系统重建流程。
    • 记录恢复时间目标(RTO)和恢复点目标(RPO)是否满足需求。
  5. 文档更新

    • 更新系统文档,包括配置变更、维护记录和应急联系人信息。

自动化维护任务

  • 使用脚本和工具:通过编写 Shell 脚本或使用工具(如 cronAnsiblePuppet)自动化重复性维护任务。
  • 监控系统:部署监控工具(如 Nagios、Zabbix 或 Prometheus)以实时跟踪服务器健康状态和性能。
  • 日志管理:使用集中式日志管理工具(如 ELK Stack 或 Graylog)简化日志分析。