| 1234567891011121314151617181920212223242526272829 |
- #!/bin/bash
- # 设置变量
- CONTAINER_NAME="ems-tdengine"
- BACKUP_ROOT="/opt/ems-platform/backups/tdengine"
- DATE=$(date +%Y%m%d_%H%M)
- TARGET_DIR="$BACKUP_ROOT/$DATE"
- mkdir -p $TARGET_DIR
- # 1. 调用容器内的 taosdump 工具导出元数据和数据
- echo "Starting TDengine backup..."
- docker exec $CONTAINER_NAME taosdump -o /tmp/dump_out -D power_db
- # 2. 将备份文件从容器复制到宿主机
- docker cp $CONTAINER_NAME:/tmp/dump_out/. $TARGET_DIR/
- # 3. 清理容器内临时文件
- docker exec $CONTAINER_NAME rm -rf /tmp/dump_out
- # 4. 压缩 (时序数据通常很大,建议压缩)
- cd $BACKUP_ROOT
- tar -czf $DATE.tar.gz $DATE
- rm -rf $DATE
- # 5. 清理超过 30 天的备份
- find $BACKUP_ROOT -name "*.tar.gz" -mtime +30 -delete
- echo "Backup completed: $TARGET_DIR"
|