# 命令行工具

DataMover 提供了功能强大的命令行界面 (CLI),让您可以通过命令行轻松执行数据传输任务。

# 安装 CLI

如果您已经全局安装了 DataMover,可以直接使用 CLI:

npm install -g datamover

或者使用 npx 临时运行:

npx datamover transfer --source ./source --destination ./dest

# 基本命令

# transfer

执行数据传输任务,这是最常用的命令。

datamover transfer --source <source> --destination <destination> [options]

示例:

# 本地文件传输
datamover transfer --source ./data --destination ./backup

# 数据库传输
datamover transfer --source "mysql://user:pass@localhost/db" --destination ./backup

# test

测试数据源和目标的连接性。

datamover test --source <source> --destination <destination>

示例:

datamover test --source ./data --destination ./backup

# validate

验证配置文件的有效性。

datamover validate <config-file>

示例:

datamover validate ./config.json

# version

显示 DataMover 版本号。

datamover version

或者使用简写:

datamover -v

# help

显示帮助信息。

datamover help

或者针对特定命令:

datamover help transfer

# 通用选项

以下选项可以用于所有命令:

# --config, -c

指定配置文件路径。

datamover transfer --config ./my-config.json

# --verbose, -V

启用详细输出。

datamover transfer --source ./src --destination ./dest --verbose

# --silent, -s

静默模式,不输出任何信息。

datamover transfer --source ./src --destination ./dest --silent

# --help, -h

显示帮助信息。

datamover --help

# --version, -v

显示版本号。

datamover --version

# transfer 命令选项

# --source, -S

指定数据源。

datamover transfer --source ./data --destination ./backup

# --destination, -D

指定数据目标。

datamover transfer --source ./data --destination ./backup

# --concurrency, -C

设置并发数。

datamover transfer --source ./src --destination ./dest --concurrency 8

# --retry, -r

设置重试次数。

datamover transfer --source ./src --destination ./dest --retry 5

# --timeout, -t

设置超时时间(毫秒)。

datamover transfer --source ./src --destination ./dest --timeout 30000

# --filter, -f

设置文件过滤器(支持 glob 模式)。

datamover transfer --source ./src --destination ./dest --filter "*.txt"

# --exclude, -e

排除指定文件(支持 glob 模式)。

datamover transfer --source ./src --destination ./dest --exclude "*.tmp"

# --report, -R

生成传输报告到指定文件。

datamover transfer --source ./src --destination ./dest --report ./report.json

# --dry-run, -d

预演模式,不实际执行传输。

datamover transfer --source ./src --destination ./dest --dry-run

# 配置文件

您可以使用 JSON 或 YAML 格式的配置文件来指定复杂的传输任务。

# JSON 配置示例

{
  "source": "./data/source",
  "destination": "./data/destination",
  "options": {
    "concurrency": 4,
    "retry": 3,
    "timeout": 30000,
    "filter": "*.txt",
    "exclude": "*.tmp"
  }
}

# YAML 配置示例

source: ./data/source
destination: ./data/destination
options:
  concurrency: 4
  retry: 3
  timeout: 30000
  filter: "*.txt"
  exclude: "*.tmp"

使用配置文件:

datamover transfer --config ./config.json

# 环境变量

DataMover 支持以下环境变量:

# DATAMOVER_CONCURRENCY

设置默认并发数。

DATAMOVER_CONCURRENCY=8 datamover transfer --source ./src --destination ./dest

# DATAMOVER_RETRY

设置默认重试次数。

DATAMOVER_RETRY=5 datamover transfer --source ./src --destination ./dest

# DATAMOVER_TIMEOUT

设置默认超时时间(毫秒)。

DATAMOVER_TIMEOUT=30000 datamover transfer --source ./src --destination ./dest

# DATAMOVER_LOG_LEVEL

设置日志级别(error, warn, info, verbose, debug)。

DATAMOVER_LOG_LEVEL=debug datamover transfer --source ./src --destination ./dest

# 使用示例

# 简单文件传输

datamover transfer --source ./local/data --destination ./backup/data

# 带选项的传输

datamover transfer \
  --source ./data \
  --destination ./backup \
  --concurrency 8 \
  --retry 5 \
  --timeout 60000 \
  --filter "*.json" \
  --exclude "*.tmp" \
  --report ./transfer-report.json

# 使用配置文件

datamover transfer --config ./production-config.json

# 预演传输

datamover transfer --source ./src --destination ./dest --dry-run --verbose

# 测试连接

datamover test --source "mysql://user:pass@localhost/db" --destination ./backup

# 自动化脚本

您可以在 shell 脚本中使用 DataMover CLI 实现自动化任务。

# Bash 脚本示例

#!/bin/bash

echo "开始数据传输任务"

datamover transfer \
  --source ./data \
  --destination ./backup \
  --report ./daily-backup-report.json

if [ $? -eq 0 ]; then
  echo "数据传输成功完成"
  # 发送通知邮件或其他操作
else
  echo "数据传输失败"
  # 发送错误通知
fi

# Windows 批处理示例

@echo off
echo 开始数据传输任务

datamover transfer ^
  --source ./data ^
  --destination ./backup ^
  --report ./daily-backup-report.json

if %ERRORLEVEL% EQU 0 (
  echo 数据传输成功完成
  REM 发送通知邮件或其他操作
) else (
  echo 数据传输失败
  REM 发送错误通知
)

通过这些命令行工具,您可以轻松地将 DataMover 集成到您的自动化工作流程中。

最后更新: 2025/9/16 17:02:07