服务器清理指南
概述
服务器维护是确保系统稳定运行的关键环节。本指南提供了全面的服务器清理方案,包括自动化脚本和最佳实践建议。
核心清理任务
日志文件管理
系统和应用日志的管理对服务器性能有直接影响。以下是关键操作:
1 2 3 4 5 6 7 8
| find /var/log -type f -name "*.log" -mtime +30 -delete
find /var/log -type f -name "*.log" -mtime +7 -exec gzip {} \;
find /app/logs -type f -size +100M -exec rm -f {} \;
|
系统清理
定期清理系统缓存和临时文件:
1 2 3 4 5 6 7 8 9 10 11
| apt-get clean apt-get autoremove -y
yum clean all dnf clean all
find /tmp -type f -atime +7 -delete find /home/*/tmp -type f -atime +7 -delete
|
Docker环境维护
针对Docker环境的专项清理:
1 2 3 4 5 6 7 8
| docker container prune -f
docker image prune -a -f
docker system prune -af --volumes
|
自动化解决方案
全能清理脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| #!/bin/bash
CLEANUP_LOG="/var/log/cleanup.log" DISK_THRESHOLD=90 ALERT_EMAIL="[email protected]"
log_message() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> $CLEANUP_LOG }
cleanup_logs() { log_message "开始清理日志文件" find /var/log -type f -name "*.log" -mtime +30 -delete find /var/log -type f -name "*.log" -mtime +7 -exec gzip {} \; log_message "日志清理完成" }
cleanup_system() { log_message "开始系统清理" if command -v apt-get &> /dev/null; then apt-get clean apt-get autoremove -y elif command -v yum &> /dev/null; then yum clean all fi log_message "系统清理完成" }
cleanup_docker() { if command -v docker &> /dev/null; then log_message "开始Docker清理" docker system prune -af --volumes log_message "Docker清理完成" fi }
check_disk_space() { local usage=$(df -h | grep '/dev/' | awk '{ print $5 }' | cut -d'%' -f1) for u in $usage; do if [ $u -gt $DISK_THRESHOLD ]; then log_message "警告:磁盘使用率超过 ${DISK_THRESHOLD}%" echo "磁盘空间警告:使用率超过 ${DISK_THRESHOLD}%" | mail -s "服务器磁盘空间警告" $ALERT_EMAIL fi done }
log_message "=== 开始清理任务 ===" cleanup_logs cleanup_system cleanup_docker check_disk_space log_message "=== 清理任务完成 ==="
|
定时执行
配置crontab实现自动执行:
1 2
| 0 2 * * 0 /path/to/cleanup-script.sh
|
最佳实践
清理策略
- 根据业务需求设定日志保留周期
- 配置分级告警阈值
- 建立清理任务优先级
安全建议
- 清理前必须备份关键数据
- 采用渐进式清理策略
- 保留操作审计日志
- 设置清理脚本执行权限
性能优化
- 错峰执行大型清理任务
- 配置 IO 限流
- 分批处理大量文件
- 监控清理任务资源消耗
监控与告警
监控指标
- 磁盘使用率
- 清理任务执行状态
- 系统负载变化
- 关键服务可用性
告警配置
1 2 3 4 5 6 7 8 9 10 11
| #!/bin/bash
THRESHOLD=90 EMAIL="[email protected]"
df -h | grep '/dev/' | awk '{ print $5 }' | cut -d'%' -f1 | while read usage; do if [ $usage -gt $THRESHOLD ]; then echo "警告:磁盘使用率: ${usage}%" | mail -s "磁盘空间警告" $EMAIL fi done
|
故障处理
常见问题处理流程
- 检查清理脚本日志
- 验证系统资源使用情况
- 确认文件系统状态
- 排查进程异常
故障排查命令
1 2 3 4 5 6 7 8
| find / -type f -size +100M -exec ls -lh {} \;
df -h && du -sh /*
lsof | grep deleted
|
总结
完善的服务器清理机制是保障系统稳定运行的基础。通过自动化脚本和监控告警,可以实现精确、高效的维护管理。建议定期评估和优化清理策略,确保服务器始终保持最佳状态。