[dify]备份dify
·
#!/bin/bash
# 备份目录
BACKUP_DIR="/opt/backup"
DATE=$(date +%Y%m%d_%H%M%S)
PROJECT_DIR="/opt/dify/docker" # 你的 docker-compose.yaml 所在目录
RETENTION_DAYS=7
# 创建备份目录
mkdir -p $BACKUP_DIR
echo "开始 Dify 全量备份: $DATE"
# 1. 备份 volumes 目录(包含所有数据)
echo "备份 volumes 目录..."
cd $PROJECT_DIR
tar -czf $BACKUP_DIR/dify_volumes_$DATE.tar.gz volumes
# 2. 备份 docker-compose.yaml
echo "备份 docker-compose.yaml..."
cp $PROJECT_DIR/docker-compose.yaml $BACKUP_DIR/docker-compose_$DATE.yaml
# 3. 备份 .env 文件(如果有)
if [ -f "$PROJECT_DIR/.env" ]; then
echo "备份 .env 文件..."
cp $PROJECT_DIR/.env $BACKUP_DIR/env_$DATE.env
fi
# 4. 创建最终备份包
echo "创建最终备份包..."
cd $BACKUP_DIR
tar -czf dify_full_backup_$DATE.tar.gz dify_volumes_$DATE.tar.gz docker-compose_$DATE.yaml env_$DATE.env 2>/dev/null
# 5. 清理中间文件
rm -f dify_volumes_$DATE.tar.gz docker-compose_$DATE.yaml env_$DATE.env
# 6. 清理旧备份(只保留最近7天)
find $BACKUP_DIR -name "dify_full_backup_*.tar.gz" -mtime +$RETENTION_DAYS -delete
echo "Dify 全量备份完成: $BACKUP_DIR/dify_full_backup_$DATE.tar.gz"
echo "备份大小: $(du -h $BACKUP_DIR/dify_full_backup_$DATE.tar.gz | cut -f1)"
打开终端,输入以下命令来编辑你当前用户的 crontab 文件:
crontab -e
如果你想让 /home/user/my_script.sh 这个脚本在每天早上 8:30 运行,你需要添加这样一行:
30 8 * * * /bin/bash /home/user/my_script.sh更多推荐

所有评论(0)