windows - GCP SDK gsutil rsynch不返回进度
问题描述
当我gsutil rsynch
从 GCP Console 或 .bat 文件运行时,不会显示完整的进度数据(我很确定以前它是这样的。)我在 403.0.0 版
这是命令:
>gsutil rsync -r -n \\xxxx\WEBSITE\xxx\pages gs://xxx/pages
Building synchronization state...
Starting synchronization...
>
如果我运行相同的命令,然后pause
在 .bat 文件中运行 a,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 似乎关闭得很好。
这是一个错误吗?还是我错过了什么?
解决方案
我建议您更新到最新的 gsutil 版本。我在我的机器和Cloud Shell上进行了测试,两者都使用 rsync 版本 4.31,它们显示命令的进度,列出正在复制的文件。
我在不同的环境中重现了该脚本,并观察到该脚本仅在 Windows 机器上完成 rsync 后才跳过命令。我在 Google Cloud SDK Shell 和 Cygwin for Windows 上进行了测试。
但是,在 Linux 机器和 Cloud Shell 上,相同的脚本按预期工作,并在 rsync 完成后执行后续命令。
此行为取决于各个 shell 的实现。您将需要捕捉意外行为并以所需的方式处理情况,因为解决方案因环境而异。
推荐阅读
- python - 如何基于节点之间的其他边有条件地在网络中创建边(使用 python Networkx 包)?
- javascript - TS | 元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“记录”
' - office365 - O365 Outlook 插件:在商店发布时的验证问题 [4.18]
- plasticscm - PlasticSCM 升级 - Client.conf 根元素丢失
- dialogflow-es - 测试实体条目的有效性
- events - Esper 没有保护对象并导致聚合对象 oom
- android - 在android中单击一个按钮而不是它的操作按钮时关闭一个快餐栏
- java - 如何从 Mockito 类中为不返回值的 Save 方法调用/生成异常?
- react-native - React-Native run-android:expo SDK 需要 Expo 才能运行。似乎本机 Expo 模块不可用,并且此代码未在 Expo 上运行
- typescript - TypeScript:销毁参数时如何指定函数参数的类型?