我想检索一些应用程序的日志。
我发现命令cf file
不再可用,插件cf-download
doesn't work on Diego Architecture。
有没有办法通过CLI其他方法从云代工厂检索文件?
答案 0 :(得分:0)
解决方案是使用SSH without cf CLI
当您进入步骤4)时,您可以使用WinSCP(适用于Windows)使用图形界面在文件夹中导航。
答案 1 :(得分:0)
一个更简单但不模糊的解决方案是使用 cf ssh
通过标准输出传输。
例如,如果您想直接在 /home/vcap/logs
下传输所有文件,您可以...
更新:这是一个更简单、更快速的版本,没有只使用 tar
的 for 循环:
cf ssh <APP> -i <INSTANCE> -c 'tar cfz - logs/*.log' | tar xfz - -C .
就我而言,这会在不到 20 秒的时间内传输 1 GB 的日志文件。
原答案:
#!/bin/sh
mkdir -p logs
for f in $( cf ssh <APP> -i <INSTANCE> -c 'ls logs/*' ); do
cf ssh <APP> -i <INSTANCE> -c "cat $f" > $f
done
在我的设置中,传输 1.3GB 的日志文件大约需要 11 分钟。
使用 gzip
压缩将时间缩短到 5 分钟(替换 for 循环中的行):
cf ssh <APP> -i <INSTANCE> -c "cat $f | gzip -c" | gunzip > $f
很确定这可以使用 tar
进行优化并摆脱 for 循环。