Google compute engine 如果DRA存储桶';s的内容不可用?
我在一个服务器上,我经常执行命令,将文件上传/下载到bucket或从bucket下载文件 由于文件)可能不可用(因为DRA),因此当遇到这种情况时,Google compute engine 如果DRA存储桶';s的内容不可用?,google-compute-engine,gsutil,Google Compute Engine,Gsutil,我在一个服务器上,我经常执行命令,将文件上传/下载到bucket或从bucket下载文件 由于文件)可能不可用(因为DRA),因此当遇到这种情况时,gsutil rsync会话期间会发生什么 gsutil是否只需等待不可用的文件可用并完成任务,从而始终从bucket下载所有内容 或者,gsutil是否会退出并警告某个文件不可用,如果是,则确切地说是使用了什么输出(以便我可以编写一个脚本来查找此类消息) 在发现文件不可用的会话中,gsutil命令的返回代码是什么 我需要100%确定我从bucket
gsutil rsync
会话期间会发生什么
gsutil
是否只需等待不可用的文件可用并完成任务,从而始终从bucket下载所有内容gsutil
是否会退出并警告某个文件不可用,如果是,则确切地说是使用了什么输出(以便我可以编写一个脚本来查找此类消息)gsutil
命令的返回代码是什么我需要100%确定我从bucket下载了所有内容,我猜在下载数百GB的数据时很难跟踪这些内容。如果
gsutil rsync
在没有下载不可用文件的情况下完成,是否可以构造一个命令来重试不可用的文件,直到所有这些文件都成功下载?我对一个项目进行了一些测试,但无法让gsutil
抛出任何错误。恕我直言,gsutil是在目录级别运行的,它不是在寻找特定的文件
例如,当您运行时,$gsutil rsync local_dir gs://bucket
,gsutil不需要任何特定的文件,它只需要获取“local_dir”中的所有内容并将其上载到gs://bucket,因此:
local\u dir
上缺少一个文件,但它在bucket中可用,然后运行$gsutil rsync-r local\u dir gs://bucket
,那么bucket中不会有任何更改。使用“-d”选项,将删除铲斗侧的文件crontab
条目,每天或晚上重新运行gstuil命令几次
另一种方法是创建一个简单的脚本,并将其添加到crontab中,以便每小时左右运行一次。这将检查文件是否存在,如果存在,将运行gsutil命令:
#!/bin/bash
FILE=/home/user/test.txt
if [ -f $FILE ];
then
echo "file exists..or something"
else
gsutil rsync /home/user gs://bucket
fi
更新:
我想这可能是你需要的。在~/中,应该有一个.boto文件
~$ more .boto | grep max
# num_retries = <integer value>
# max_retry_delay = <integer value>
~$more.boto| grep max
#重试次数=
#最大重试延迟=
取消对这些行的注释并添加您的数字。默认值是6次重试,所以您可以执行24次重试,并在这两次之间放置3600次。这在理论上应该始终保持循环
希望这有帮助 我对一个项目做了一些测试,但无法让
gsutil
抛出任何错误。恕我直言,gsutil是在目录级别运行的,它不是在寻找特定的文件
例如,当您运行时,$gsutil rsync local_dir gs://bucket
,gsutil不需要任何特定的文件,它只需要获取“local_dir”中的所有内容并将其上载到gs://bucket,因此:
local\u dir
上缺少一个文件,但它在bucket中可用,然后运行$gsutil rsync-r local\u dir gs://bucket
,那么bucket中不会有任何更改。使用“-d”选项,将删除铲斗侧的文件crontab
条目,每天或晚上重新运行gstuil命令几次
另一种方法是创建一个简单的脚本,并将其添加到crontab中,以便每小时左右运行一次。这将检查文件是否存在,如果存在,将运行gsutil命令:
#!/bin/bash
FILE=/home/user/test.txt
if [ -f $FILE ];
then
echo "file exists..or something"
else
gsutil rsync /home/user gs://bucket
fi
更新:
我想这可能是你需要的。在~/中,应该有一个.boto文件
~$ more .boto | grep max
# num_retries = <integer value>
# max_retry_delay = <integer value>
~$more.boto| grep max
#重试次数=
#最大重试延迟=
取消对这些行的注释并添加您的数字。默认值是6次重试,所以您可以执行24次重试,并在这两次之间放置3600次。这在理论上应该始终保持循环
希望这有帮助 我对一个项目做了一些测试,但无法让
gsutil
抛出任何错误。恕我直言,gsutil是在目录级别运行的,它不是在寻找特定的文件
例如,当您运行时,$gsutil rsync local_dir gs://bucket
,gsutil不需要任何特定的文件,它只需要获取“local_dir”中的所有内容并将其上载到gs://bucket,因此:
local\u dir
上缺少一个文件,但它在bucket中可用,然后运行$gsutil rsync-r local\u dir gs://bucket
,那么bucket中不会有任何更改。使用“-d”选项,将删除铲斗侧的文件crontab
条目,每天或晚上重新运行gstuil命令几次
另一种方法是创建一个简单的脚本,并将其添加到crontab中,以便每小时左右运行一次。这将检查文件是否存在,如果存在,将运行gsutil命令:
#!/bin/bash
FILE=/home/user/test.txt
if [ -f $FILE ];
then
echo "file exists..or something"
else
gsutil rsync /home/user gs://bucket
fi
更新:
我想这可能是你需要的。在~/中,应该有一个.boto文件
~$ more .boto | grep max
# num_retries = <integer value>
# max_retry_delay = <integer value>
~$more.boto| grep max
#重试次数=
#最大重试延迟=
取消对这些行的注释并添加您的数字。默认值是6次重试,所以您可以执行24次重试,并在这两次之间放置3600次。这在理论上应该始终保持循环
希望这有帮助 我对一个项目做了一些测试