如何从Diego

时间:2018-01-29 10:58:30

标签: command-line-interface cloudfoundry swisscomdev

我想检索一些应用程序的日志。 我发现命令cf file不再可用,插件cf-download doesn't work on Diego Architecture。 有没有办法通过CLI其他方法从云代工厂检索文件?

2 个答案:

答案 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 循环。