centos

CentOS Golang日志备份与恢复方案

小樊
41
2025-08-08 15:58:23
栏目: 编程语言

备份方案

  1. 脚本备份
    • 编写Shell脚本,使用cprsync命令复制日志文件到备份目录,可结合date命令生成带时间戳的文件名,例如:
      #!/bin/bash
      LOG_DIR="/var/log/myapp"
      BACKUP_DIR="/backup/logs"
      DATE=$(date +%Y%m%d%H%M%S)
      cp "$LOG_DIR/app.log" "$BACKUP_DIR/app_$DATE.log"
      gzip "$BACKUP_DIR/app_$DATE.log"
      
      通过crontab -e设置定时任务(如每天凌晨1点执行)。
  2. 工具自动备份
    • logrotate:编辑/etc/logrotate.d/myapp配置文件,设置日志轮转规则(如每天备份、保留7天、压缩),例如:
      /var/log/myapp/*.log {
          daily
          rotate 7
          compress
          missingok
          create 640 root adm
      }
      
      无需手动编写脚本,系统自动管理。

恢复方案

  1. 直接还原
    • 停止Golang应用,使用cp命令将备份文件复制回原路径,例如:
      cp /backup/logs/app_20250808010000.log /var/log/myapp/app.log
      
      恢复后重启应用。
  2. 解压还原
    • 若备份为压缩文件,先解压再复制:
      tar -xzvf /backup/logs/app_backup.tar.gz -C /var/log/myapp/
      
  3. 日志文件修复
    • 若日志文件误删且进程已停止,可通过lsof命令从/proc中恢复(需进程仍持有文件句柄)。

注意事项

0
看了该问题的人还看了