Featured image of post 自建Memos安装与自动备份

自建Memos安装与自动备份

整体思路

  1. 安装 Docker 版 Memos
  2. 安装自动同步工具 Dropbox
  3. 自定义同步脚本,每天定时执行脚本,执行成功后发送 Tel 消息通知。

一、安装 Docker 版 Memos

Memos 项目地址:Memos

Memos Docker 版安装命令如下:

1
docker run -d --name memos -p 5230:5230 -v ~/memos/:/var/opt/memos ghcr.io/usememos/memos:latest

映射 memos 目录 ~/memos/

安装成功后访问 主机 IP:5230 ,然后可继续设置账号和存储。

二、自动备份Memos数据文件

1. 安装 Dropbox

参照 官方安装页面,先运行以下命令下载并解压 Dropbox。

1
$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -

然后在 home 目录就会产生一个 .dropbox-dist 目录,同样参照以上官方安装页面,运行这个目录下的 dropboxd 来启动 Dropbox 守护进程。

1
$ ~/.dropbox-dist/dropboxd

根据提示需要打开 URL 登录自己的账号以绑定这台服务器。

如果自己的 Dropbox 账号是通过 Google 或者 Apple 登录的话,需要先登录自己的账号设置一个密码才能在这里登录。

登录之后,控制台会出现一句话,

1
This computer is now linked to Dropbox. Welcome XXX

代表登录已经成功了。

此时 home 目录下已经出现了 Dropbox 目录,进入之后就可以看见自己 Dropbox 内部存放的文件。

依照官方安装页面,可以通过下载一个 Python 脚本,可以更方便地用命令行控制 Dropbox。运行以下命令来下载 Python 脚本到 /usr/local/bin 目录,即可快速执行。

1
$ sudo wget -O /usr/local/bin/dropbox "https://www.dropbox.com/download?dl=packages/dropbox.py"

再给它添加执行权限。

1
$ sudo chmod +x /usr/local/bin/dropbox

然后运行 dropbox 命令即可。

运行 dropbox start 启动守护进程。dropbox status 查看状态。

当操作 Dropbox 目录时,守护进程会将更新的内容自动同步至 Dropbox 云端。

2. 设置同步脚本

步骤 1. 安装自动同步工具 rsync 安装命令:

1
sudo yum install rsync

步骤 2. 创建同步脚本 memos_syn.sh ,执行同步,并发送同步结果。 执行命令 nano ~/script/memos_syn.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/bin/bash

SOURCE_DIR=/root/memos/
DEST_DIR=/root/Dropbox/memos

# Run rsync to sync the directories
rsync -avh --delete --checksum "$SOURCE_DIR" "$DEST_DIR"

# Check the exit status of rsync
if [ $? -eq 0 ]; then
    # If rsync was successful, send a message to the Telegram bot
    curl -s -X POST "https://api.telegram.org/bot{token}/sendMessage" -d "chat_id={chatid}" -d "text=Memos数据文件同步成功!"
else
    # If rsync had an error, send an error message to the Telegram bot
    curl -s -X POST "https://api.telegram.org/bot{token}/sendMessage" -d "chat_id={chatid}" -d "text=Memos数据文件同步失败!!!"
fi

10 0 * * * /root/script/memos_syn.sh

上述脚本中执行 POST 发送的 Tel 消息,{token}填入机器人 token ,{chatid}接收消息的个人账号ID。

  • 创建/获取机器人token:@BotFather
  • 获取个人用户id:@userinfobot

步骤 3. 创建定时任务,使用 crontab -e 命令来编辑用户的 crontab 文件。

1
10 0 * * * /root/script/memos_syn.sh

上述定时任务为每天 0:10 执行一次脚本,可以根据实际情况修改。 编辑完成,退出保存。

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计