当我从GCP控制台或.bat文件运行gsutil rsynch
时,不会显示完整的进度数据(以前我很确定。)我在第403.0.0节
这是命令:
>gsutil rsync -r -n \\xxxx\WEBSITE\xxx\pages gs://xxx/pages
Building synchronization state...
Starting synchronization...
>
如果我运行相同的命令,然后在.bat文件中运行pause
,则pause
未被命中 - 批处理文件终止。 glist(也许是其他人)将他们的数据输出到控制台并继续进行批处理命令的平衡。
c:
cd "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\"
gsutil rsync -r -d \\xxx\pages gs://xxx/pages
pause <<<<< never get here
如果我使用.Net Process,我可以捕获包含进度数据的标准输出。然而,在rsynch完成后,StdOut似乎关闭得很好。
这是一个错误吗?或者我错过了什么?
答案 0 :(得分:1)
我建议您更新为latest gsutil release。 我在我的机器上以及Cloud Shell上测试了rsync版本4.31,它们显示了命令的进度,列出了要复制的文件。
我在不同的环境中重现了脚本,并观察到脚本在rsync完成后仅在Windows机器上跳过命令。我在Google Cloud SDK Shell和Cygwin for Windows上进行了测试。
但是,在Linux机器上和Cloud Shell上,相同的脚本按预期工作,并在rsync完成后执行后续命令。
此行为取决于各个shell的实现。您将需要捕获意外行为并以所需方式处理该情况,因为解决方案因环境而异。