我需要解压数百个大小在30到140 as之间的tar文件,只要它们可用。我已经创建了一个包含(当前)5个“标准a1”单核Linux节点的池,“microsoft-azure-batch centos-container 7-4 (最新)”
该批具有关联的存储帐户。存储包含我希望解压到同一存储中的tar文件。还有一个作业叫做"untarjob“。
由于批处理允许与存储相关联,因此我做了一个假设,即每个计算节点自然可用。然而,现在的假设可能是这不是真的?因此,我正在尝试挂载存储并运行unix tar命令来解压tar,如下所示。
这不起作用:
az batch task create --task-id t80000 --job-id untarjob --command-
line "mount -t cifs //dummy.file.core.windows.net/s01 /tarfiles -o
vers=3.0,username=dummy,password=Pv4<snipp>N8Imu34reseEEe==,dir_mode=0777,
file_mode=0777,sec=ntlmssp ; tar -xvf /tarfiles/80000.tar"
你能告诉我怎么解决这个问题吗?
非常感谢
凯文
发布于 2018-06-07 00:03:10
首先,如果您的任务不需要容器并且需要直接在主机上运行,那么您可能不应该使用特定于容器的VM映像。
对于此问题,请将您的命令包装在shell调用中:
/bin/sh -c 'sudo mkdir /tarfiles; sudo mount ...; tar ...'
注意单引号,因为您对--command-line
参数使用了双引号。此外,如果您的命令需要完全以特权模式运行,请考虑使用user identities,以避免必须使用sudo。
https://stackoverflow.com/questions/50686714
复制相似问题