你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在脚本和计划传输中使用 AzCopy

可以将 AzCopy 合并到自动化脚本中,用于批处理作、计划的数据传输或持续集成管道。 本文介绍如何获取静态下载链接,以确保版本一致性、创建自动数据传输的计划任务,以及处理字符转义和 Jenkins 集成等特殊注意事项。

随着时间的推移,AzCopy 下载链接 指向新版本的 AzCopy。 如果脚本会下载 AzCopy,而更高版本的 AzCopy 会修改该脚本所依赖的功能,则该脚本可能会停止工作。

若要避免这些问题,请获取指向当前版本的 AzCopy 的静态(未更改)链接。 这样,每次运行脚本时,它都会下载相同的 AzCopy 版本。

若要获取静态链接,请打开 AzCopy 发布页。 然后,滚动页面,直到找到所需的版本。 在该版本的资产列表中,右键单击所需的资产。 在上下文菜单中,选择“复制链接”。 然后,可以在脚本中使用该 URL 下载并提取 AzCopy 二进制文件。

注释

由于内容交付基础结构,AzCopy 二进制文件的静态链接可能会随时间而变化。 如果出于任何原因必须使用特定版本的 AzCopy,请考虑将 AzCopy 与利用 Linux 已发布包的作系统配合使用。 此方法可确保你能够可靠地安装和维护所需的 AzCopy 版本。

创建计划的任务

可创建用于运行 AzCopy 命令脚本的计划任务或 cron 作业。 此脚本标识新的本地数据,并按特定时间间隔将其上传到云存储。

以下示例假定你使用 AZCOPY_AUTO_LOGIN_TYPE 环境变量配置了 Microsoft Entra 身份验证。 若要了解详细信息,请参阅 使用 Microsoft Entra ID 授权

将以下 AzCopy 命令复制到文本编辑器。 将 AzCopy 命令的参数值更新为合适的值。 将文件另存为 script.sh

azcopy sync "/mnt/myfiles" "https://mystorageaccount.blob.core.windows.net/mycontainer" --recursive=true

可以使用 Crontab 命令创建 cron 作业。 以下示例创建 cron 作业并指定 cron 表达式,该表达式 */5 * * * * 指示 shell 脚本 script.sh 应每五分钟运行一次。

crontab -e
*/5 * * * * sh /path/to/script.sh

可计划让脚本在每日、每月或每年的特定时间运行。 若要了解有关设置作业执行日期和时间的详细信息,请参阅 cron 表达式

转义 SAS 令牌中的特殊字符

在扩展名为 .cmd 的批处理文件中,需要对出现在 SAS 令牌中的字符 % 进行转义。 在 SAS 令牌字符串中的现有%字符旁边添加额外的%字符。 生成的字符序列显示为 %%。 在每个字符之前^添加一个额外的&字符,以创建字符序列^&

使用 Jenkins 运行脚本

如果计划使用 Jenkins 运行脚本,请在脚本的开头放置以下命令。

/usr/bin/keyctl new_session

后续步骤

如果有疑问、问题或常规反馈,请在 GitHub 上提交。