

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 计划 AWS DataSync 任务的运行时间
<a name="task-scheduling"></a>

您可以设置 AWS DataSync 任务计划，定期在存储位置之间传输数据。

## DataSync 任务计划的工作方式
<a name="how-task-scheduling-works"></a>

计划的 DataSync 任务按您指定的频率运行，最小间隔为 1 小时。您可以使用 cron 或 rate 表达式创建任务计划。

**重要**  
您无法将任务安排为以快于 1 小时的间隔运行。

**使用 cron 表达式**  
对于在特定时间和日期运行的任务计划，请使用 cron 表达式。例如，下面展示了如何在 AWS CLI 中配置任务计划，使其在每周日和周三中午 12:00（UTC 时间）运行。  

```
cron(0 12 ? * SUN,WED *)
```

**使用 rate 表达式**  
对定期运行的任务计划（例如每 12 小时运行一次），请使用 rate 表达式。例如，下面展示了如何在 AWS CLI 中配置任务计划，使其每 12 小时运行一次。  

```
rate(12 hours)
```

**提示**  
有关 cron 和 rate 表达式语法的更多信息，请参阅 [https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html)。

## 创建 DataSync 任务计划
<a name="configure-task-schedule"></a>

您可以使用 DataSync 控制台、AWS CLI、或 DataSync API 安排任务的运行频率。

### 使用 DataSync 控制台
<a name="configure-task-schedule-console"></a>

以下说明介绍了在创建任务时，如何设置计划。稍后，在编辑任务时，您还可以修改计划。

在控制台中，一些计划选项允许您指定任务运行的确切时间（例如每天晚上 10:30）。如果不为这些选项指定时间，将在您创建（或更新）任务的时间运行该任务。

1. 打开 AWS DataSync 控制台，地址：[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于计划**频率**，执行以下操作之一：
   + 如果不想按计划运行任务，请选择**未计划**。
   + 选择**每小时**，然后选择要在一小时中的哪一分钟运行任务。
   + 选择**每天**，然后输入要运行任务的 UTC 时间。
   + 选择**每周**和一周中的某一天，然后输入要运行任务的 UTC 时间。
   + 选择**周中日期**，选择具体的一天或数天，然后以 HH:MM 格式输入应运行任务的 UTC 时间。
   + 选择**自定义**，然后选择 **Cron 表达式**或 **Rate 表达式**。输入任务计划，最小时间间隔为 1 小时。

### 使用 AWS CLI
<a name="configure-task-schedule-api"></a>

您可以在 `create-task`、`update-task` 或 `start-task-execution` 命令中使用 `--schedule` 参数，为 DataSync 任务创建计划。

以下说明介绍了如何使用 `create-task` 命令执行此操作。

1. 复制以下 `create-task` 命令：

   ```
   aws datasync create-task \
     --source-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh \
     --destination-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-abcdefgh12345678 \
     --schedule '{
       "ScheduleExpression": "cron(0 12 ? * SUN,WED *)"
     }'
   ```

1. 对于 `--source-location-arn` 参数，指定数据传输源位置的 Amazon 资源名称（ARN）。

1. 对于 `--destination-location-arn` 参数，指定数据传输目标位置的 ARN。

1. 对于 `--schedule` 参数，为您的计划指定 cron 或 rate 表达式。

   在示例中，cron 表达式 `cron(0 12 ? * SUN,WED *)` 设置了在每周日和每周三中午 12:00（UTC 时间）运行的任务计划。

1. 运行 `create-task` 命令创建带有计划的任务。

## 暂停 DataSync 任务计划
<a name="pause-task-schedule"></a>

在某些情况下，您可能需要暂停 DataSync 任务计划。例如，您可能需要暂时禁用定期传输，以修复任务中的问题，或对存储系统进行维护。

出于以下原因，DataSync 可能会自动禁用您的任务计划：
+ 您的任务因相同错误反复失败。
+ 任务正在使用的 [AWS 区域 被禁用](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html)。

### 使用 DataSync 控制台
<a name="pause-scheduled-task-console"></a>

1. 打开 AWS DataSync 控制台，地址：[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**。

1. 选择要暂停计划的任务，然后选择**编辑**。

1. 在**计划**中，关闭**启用计划**。选择**保存更改**。

### 使用 AWS CLI
<a name="pause-scheduled-task-cli"></a>

1. 复制以下 `update-task` 命令：

   ```
   aws datasync update-task \
     --task-arn arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh \
     --schedule '{
       "ScheduleExpression": "cron(0 12 ? * SUN,WED *)",
       "Status": "DISABLED"
     }'
   ```

1. 对于 `--task-arn` 参数，指定要暂停其计划的任务 ARN。

1. 对于 `--schedule` 参数，请执行以下操作：
   + 对于 `ScheduleExpression`，为计划指定一个 cron 或 rate 表达式。

     在示例中，表达式 `cron(0 12 ? * SUN,WED *)` 设置了在每周日和每周三中午 12:00（UTC 时间）运行的任务计划。
   + 对于 `Status`，指定 `DISABLED` 以暂停任务计划。

1. 运行 `update-task` 命令。

1. 要恢复计划，请运行相同的 `update-task` 命令，并将 `Status` 设置为 `ENABLED`。

## 检查 DataSync 任务计划的状态
<a name="check-scheduled-task"></a>

您可以查看 DataSync 任务计划是否已启用。

### 使用 DataSync 控制台
<a name="check-scheduled-task-console"></a>

1. 打开 AWS DataSync 控制台，地址：[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**。

1. 在**计划**列中，检查任务的计划是启用还是禁用。

### 使用 AWS CLI
<a name="check-scheduled-task-cli"></a>

1. 复制以下 `describe-task` 命令：

   ```
   aws datasync describe-task \
     --task-arn arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh
   ```

1. 对于 `--task-arn` 参数，请指定您想要了解其信息的任务 ARN。

1. 运行 `describe-task` 命令。

您将收到提供任务详细信息的响应，其中包括任务的计划。（下面的示例主要关注任务计划配置，不显示完整的 `describe-task` 响应）。

该示例显示任务的计划已手动禁用。如果 DataSync `SERVICE` 禁用了计划，则会显示 `DisabledReason` 的错误消息，帮助您了解任务不断失败的原因。有关更多信息，请参阅 [疑难解答 AWS DataSync 问题](troubleshooting-datasync.md)。

```
{
    "TaskArn": "arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh",
    "Status": "AVAILABLE",
    "Schedule": {
        "ScheduleExpression": "cron(0 12 ? * SUN,WED *)",
        "Status": "DISABLED",
        "StatusUpdateTime": 1697736000,
        "DisabledBy": "USER",
        "DisabledReason": "Manually disabled by user."
    },
    ...
}
```