明道云数据自动备份

分享 零代码备份  收藏
2 / 237

基于明道自用自动备份 | HAP 社区 (mingdao.net)修改了下符合自用的

不停服版本

#!/bin/bash

# 删除备份目录内容(可选,根据需求决定)
# rm -rf /data/mingdao/script/volume/data/backup/*

# 执行备份(注意:这里假设docker命令和backup脚本已经正确设置)
docker exec $(docker ps | grep community | awk '{print $1}') bash -c 'source /entrypoint.sh && backup mysql mongodb file'

# 切换到备份目录
cd /data/mingdao/script/volume/data/backup/

# 生成包含时间戳的压缩文件名
timestamp=$(date +%Y%m%d%H%M%S)
compressed_filename="mdydatabackup_${timestamp}.tar.gz"

# 压缩当前所有备份
tar -czvf "$compressed_filename" -C . .

# 把新的备份移过去(自建目录,确保/fileupload/目录存在且可写)
mv -f "$compressed_filename" /fileupload/

# 切换到文件上传目录(自建目录,可选,取决于你是否需要在这里执行其他操作)
# cd /fileupload/

# (可选)删除备份中N天以上的备份
# 注意:这里使用find命令的-mtime选项而不是-ctime,因为-mtime基于文件内容最后修改时间
# find /fileupload/ -name "*.gz" -type f -mtime +3 -exec rm {} \;

停服务版本

备份 mingdao 文件夹

#!/bin/bash

# 删除备份目录内容(可选,根据需求决定)
 rm -rf /data/mingdao/script/volume/data/backup/*

# 切换到管理器目录(依据管理器的实际位置)
cd /usr/local/MDPrivateDeployment/

# 停止任务
bash ./service.sh stopall

# 切换到备份目录
cd /data/mingdao/

# 生成包含时间戳的压缩文件名
timestamp=$(date +%Y%m%d%H%M%S)
compressed_filename="data_mingdao_${timestamp}.tar.gz"

# 压缩当前所有备份
tar -czvf "$compressed_filename" -C . .

# 把新的备份移过去(确保/fileupload/目录存在且可写)
mv -f "$compressed_filename" /fileupload/

# 切换到管理器目录(依据管理器的实际位置)
cd /usr/local/MDPrivateDeployment/

# 启动任务
bash ./service.sh startall 

# 切换到文件上传目录(可选,取决于你是否需要在这里执行其他操作)
# cd /fileupload/

# (可选)删除备份中N天以上的备份
# 注意:这里使用find命令的-mtime选项而不是-ctime,因为-mtime基于文件内容最后修改时间
# find /fileupload/ -name "*.gz" -type f -mtime +6 -exec rm {} \;

然后调用 Linux 定时任务即可自动执行

具体使用根据自己需要调整

至于同步到其他的位置,可以考虑挂载 NFS 或者 SFTP 方式进行数据交互