首先执行停止系统写入新数据,避免恢复时数据被覆盖。若为Linux部署,查看系统日志确认丢失点:
grep -i "data loss\|archive" /var/log/archive_system.log
若为Windows部署,打开系统日志查看器,筛选“应用程序”类别中带“ArchiveSystem”的错误日志,记录丢失时间点。
/opt/archive_system/bin/restore --full-backup /opt/archive_backup/20240520_full.tar.gz使用备份时的MD5校验值比对,确认恢复数据无损坏。执行命令:md5sum /opt/archive_system/data/.db
将输出结果与备份时生成的MD5文件(如/opt/archive_backup/20240520_full.md5)对比,完全匹配则恢复成功。
在Linux部署环境下,创建自动备份脚本并加入定时任务:
创建脚本文件/opt/archive_system/scripts/auto_backup.sh,写入完整内容:
!/bin/bash
BACKUP_DIR="/opt/archive_backup"
DATE=$(date +%Y%m%d_%H%M)
每周日凌晨2点执行全量备份
if [ $(date +%u) -eq 7 ]; then
tar -czf $BACKUP_DIR/full_$DATE.tar.gz -C /opt/archive_system/data .
其余每日凌晨2点执行增量备份
else
tar -czf $BACKUP_DIR/incr_$DATE.tar.gz -g $BACKUP_DIR/backup.snap -C /opt/archive_system/data .
fi
保留最近30天备份,自动清理旧文件
find $BACKUP_DIR -name ".tar.gz" -mtime +30 -delete
记录备份日志
echo "$DATE: Backup completed successfully" >> /var/log/backup.log
给脚本加执行权限:chmod +x /opt/archive_system/scripts/auto_backup.sh

加入crontab定时任务,执行命令:echo "0 2 /opt/archive_system/scripts/auto_backup.sh >> /var/log/backup.log 2>&1" >> /var/spool/cron/root
服务器部署时配置RAID1防止单磁盘故障丢失数据,步骤:
fdisk -l | grep sdmdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdcmkfs.ext4 /dev/md0
echo "/dev/md0 /opt/archive_system/data ext4 defaults 0 0" >> /etc/fstab
mount -a执行后用cat /proc/mdstat查看RAID同步进度,同步完成前不要断电。
配置异地服务器实时同步,避免机房故障导致丢失:
ssh-keygen -t rsa -b 4096 -f ~/rsync_key -N ""ssh-copy-id -i ~/rsync_key.pub root@192.168.1.100echo "0 3 rsync -avz -e 'ssh -i ~/rsync_key' /opt/archive_system/data/ root@192.168.1.100:/backup/archive_data/ >> /var/log/rsync_sync.log 2>&1" >> /var/spool/cron/root若备份失效,使用extundelete工具扫描磁盘恢复,安装命令:
Debian/Ubuntu:apt install extundelete -y
CentOS/RHEL:yum install epel-release -y && yum install extundelete -y
执行扫描命令(替换/dev/sda1为你的数据分区):
extundelete /dev/sda1 --restore-file /opt/archive_system/data/
恢复的文件会保存在当前目录的RECOVERED_FILES文件夹中,核对后移至数据目录。