post-for-mobile

下面是 Trilium 自动备份部署文档(Markdown 版),可直接保存到你的知识库中(Obsidian / Astro / Nextra 均可)。


Trilium 自动备份部署文档

本文档记录了在服务器上为 TriliumNext 配置自动备份、远端同步(Synology NAS)以及保留策略的完整过程。

📌 目标

  • 每次执行时将 Trilium 数据目录打包 (.tar.gz)
  • 本地保留 1 份最新备份
  • Synology 远端 /volume1/nfs/backup/trilium-backup/ 保留 最新 7 份
  • 自动通过 scp 上传(已配置好 SSH key、host alias syno
  • 定期通过 cron 自动执行

1. 环境说明

项目
本地服务器路径 /opt/backup/trilium/
脚本路径 /opt/scripts/trilium_backup.sh
Trilium 数据目录 /home/node/trilium-data(根据实际情况自改)
Synology 目标机路径 syno:/volume1/nfs/backup/trilium-backup/
Synology SSH 已配置 key、host、user 均已配置

2. 创建备份脚本

创建目录:

mkdir -p /opt/scripts /opt/backup/trilium

创建脚本 /opt/scripts/trilium_backup.sh

#!/bin/bash

# ========== 配置区域 ==========
TRILIUM_DATA="/home/node/trilium-data"
LOCAL_BACKUP_DIR="/opt/backup/trilium"
REMOTE_TARGET="syno:/volume1/nfs/backup/trilium-backup"
LOCAL_KEEP=1
REMOTE_KEEP=7
# =============================

timestamp=$(date +"%Y-%m-%d_%H-%M-%S")
backup_name="trilium_${timestamp}.tar.gz"

echo "==> 打包 Trilium 备份:$backup_name"
tar -czf "${LOCAL_BACKUP_DIR}/${backup_name}" -C "$(dirname "$TRILIUM_DATA")" "$(basename "$TRILIUM_DATA")"

echo "==> 本地备份完成:${LOCAL_BACKUP_DIR}/${backup_name}"

echo "==> 清理本地旧备份,只保留最新 ${LOCAL_KEEP} 个"
ls -1t ${LOCAL_BACKUP_DIR}/trilium_*.tar.gz | tail -n +$((LOCAL_KEEP+1)) | xargs -r rm -f

echo "==> 上传至 Synology:$REMOTE_TARGET/"
scp "${LOCAL_BACKUP_DIR}/${backup_name}" "${REMOTE_TARGET}/"

if [ $? -eq 0 ]; then
    echo "==> 上传成功!"
else
    echo "==> 上传失败!退出"
    exit 1
fi

echo "==> 清理 Synology 远端旧备份,保留最新 ${REMOTE_KEEP} 个"
ssh syno "ls -1t ${REMOTE_TARGET}/trilium_*.tar.gz | tail -n +$((REMOTE_KEEP+1)) | xargs -r rm -f"

echo "==> 完成!"

添加执行权限:

chmod +x /opt/scripts/trilium_backup.sh

3. 手动测试脚本

/opt/scripts/trilium_backup.sh

典型输出如下:

==> 打包 Trilium 备份:trilium_2025-11-20_00-35-03.tar.gz
==> 本地备份完成
==> 清理本地旧备份,只保留 1 个
==> 上传至 Synology
==> 上传成功!
==> 清理远端旧备份,保留 7 个
==> 完成!

检查本地:

ls -lh /opt/backup/trilium/

检查目标机:

ssh syno "ls -lh /volume1/nfs/backup/trilium-backup/"

4. 配置 Cron 自动备份

编辑 root 的 cron:

crontab -e

加入每日凌晨 3 点自动备份:

0 3 * * * /opt/scripts/trilium_backup.sh >/dev/null 2>&1

查看当前 crontab:

crontab -l

5. 恢复方案(重要)

恢复时操作如下:

# 解压备份文件
tar -xzf trilium_YYYY-MM-DD_HH-MM-SS.tar.gz -C /

# 权限修复(如需要)
chown -R node:node /home/node/trilium-data

重启 Trilium 服务:

  • Docker 用户:
docker restart <trilium-container>
  • systemd 用户:
systemctl restart trilium

6. 可选增强功能

如需要,我可帮你继续扩展脚本:

  • [ ] 写入 /var/log/trilium_backup.log
  • [ ] 增加 Telegram/钉钉/微信机器人失败通知
  • [ ] 自动检测 Synology 是否在线再决定是否上传
  • [ ] Systemd timer 替代 cron(更可靠)
  • [ ] 加密备份(GPG)
  • [ ] 完整适配群晖 NFS / SMB / SSH 方式

如果你需要,我可以再生成一个 适用于你的 Obsidian + Astro 知识库目录结构 的文件名,例如:

2025-11-20-trilium-backup-deploy.md

要我帮你一起生成吗?

版权声明

本网站名称:个人知识记录
本文链接:https://isrv.cn/post-for-mobile/
本网站的文章部分内容可能来源于网络,仅供学习与参考,如有侵权,请联系站长进行核实删除。
转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处并附带原文链接!!!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇