backup_td.sh 779 B

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