Halo 博客备份与文章导出 📝

🔄 全面保护你的博客内容,防止数据丢失!
📋 目录导航
· 💾 后台备份
· 📦 备份文件位置
· 📂 文章导出路径
· 🔄 自动备份脚本
· 🚀 快速恢复指南
· 💡 备份策略建议
💾 后台备份
手动备份步骤
- 登录 Halo 后台管理界面
- 进入「系统」->「备份」
- 点击「立即备份」按钮
- 等待备份完成(备份文件将自动生成)
https://file.meimolihan.eu.org/screenshot/halo-backup.png
📦 备份文件位置
默认备份路径
1 2 3 4 5 6 7 8
| cd /mnt/mydisk/home/halo/config/halo2/backups
ls -la *.zip
ls -lt *.zip | head -5
|
备份文件命名格式
1 2
| YYYYMMDDHHMMSS-backup-随机标识符.zip 示例:20241025192604-backup-PPAuB.zip
|
📂 文章导出路径
解压备份文件
1 2 3 4 5 6 7 8
| mkdir -p /tmp/halo-backup
unzip /mnt/mydisk/home/halo/config/halo2/backups/20241025192604-backup-PPAuB.zip -d /tmp/halo-backup/
find /tmp/halo-backup -name "*.html" -type f | head -10
|
文章存储路径
1 2 3 4
| 备份文件解压后路径: /tmp/halo-backup/workdir/plugins/export2doc_files/export/
文章格式:HTML 文件
|
🔄 自动备份脚本
自动化备份脚本
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 56 57
| #!/bin/bash
BACKUP_DIR="/mnt/mydisk/home/halo/config/halo2/backups" LOG_FILE="/var/log/halo-backup.log" RETENTION_DAYS=30
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> $LOG_FILE }
log "开始 Halo 备份流程"
if [ ! -d "$BACKUP_DIR" ]; then log "错误: 备份目录不存在: $BACKUP_DIR" exit 1 fi
log "备份命令已执行,等待备份文件生成..."
sleep 30
LATEST_BACKUP=$(ls -t $BACKUP_DIR/*.zip | head -1)
if [ -n "$LATEST_BACKUP" ]; then log "最新备份文件: $LATEST_BACKUP" EXTRACT_DIR="/opt/halo-articles/$(date +%Y%m%d)" mkdir -p $EXTRACT_DIR unzip -o "$LATEST_BACKUP" "workdir/plugins/export2doc_files/export/*" -d "$EXTRACT_DIR" >> $LOG_FILE 2>&1 if [ -d "$EXTRACT_DIR/workdir/plugins/export2doc_files/export" ]; then mv "$EXTRACT_DIR/workdir/plugins/export2doc_files/export/"* "$EXTRACT_DIR/" rm -rf "$EXTRACT_DIR/workdir" log "文章已提取到: $EXTRACT_DIR" fi find $BACKUP_DIR -name "*.zip" -mtime +$RETENTION_DAYS -delete >> $LOG_FILE 2>&1 log "已清理超过 $RETENTION_DAYS 天的旧备份" else log "警告: 未找到备份文件" fi
log "备份流程完成"
|
设置定时自动备份
1 2 3 4 5 6 7
| crontab -e
0 2 * * * /path/to/your/halo-backup-script.sh
|
🚀 快速恢复指南
从备份恢复 Halo
- 进入 Halo 后台「系统」->「备份」
- 找到要恢复的备份文件
- 点击「恢复」按钮
- 确认恢复操作
- 等待恢复完成
手动恢复文章
💡 备份策略建议
🔒 多重备份策略
- 本地备份:保留最近7天的每日备份
- 异地备份:每周将备份文件同步到云存储(如AWS S3、Google Drive等)
- 文章导出:每月导出一次所有文章为HTML/Markdown格式
📊 备份监控
1 2 3 4 5 6 7
|
BACKUP_COUNT=$(find /mnt/mydisk/home/halo/config/halo2/backups -name "*.zip" -mtime -1 | wc -l)
if [ $BACKUP_COUNT -eq 0 ]; then echo "警告: 过去24小时内没有生成备份!" | mail -s "Halo备份警报" admin@example.com fi
|
🗂️ 备份目录结构示例
1 2 3 4 5 6 7 8 9 10 11 12
| /mnt/mydisk/backups/ ├── halo/ │ ├── daily/20241025.zip │ ├── daily/20241026.zip │ └── weekly/20241020.zip └── articles/ ├── 20241025/ │ ├── post1.html │ └── post2.html └── 20241026/ ├── post1.html └── post3.html
|
🎯 提示:定期测试备份文件的恢复过程,确保在真正需要时能够顺利恢复数据!建议每季度至少进行一次恢复演练。