基于明道自用自动备份 | 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 方式进行数据交互