【问题标题】:How to download logs from child gears如何从子齿轮下载日志
【发布时间】:2016-05-27 11:54:58
【问题描述】:

我在多节点设置中运行 OpenShift Enterprise 2.0。我正在运行一个简单的 JBoss 缩放应用程序(3 个齿轮,所以 HAProxy 和 2 个 JBoss 齿轮)。我在 .openshift/action_hooks 中使用了 pre_start_jbossews 脚本来配置详细的 GC 日志记录(仅 gc.log 作为文件名)。但是,我不知道如何从运行 JBoss 的齿轮中获取 gc.log 文件。

[有趣的是,head/parent gear(运行 HAProxy)中有一个空的 gc.log 文件。看起来那里启动了一个 java 进程,这可能是一个错误。]

我试着跑了

rhc scp <appname> download . jbossews/gc.log --gears

希望它能够像 ssh --gears 选项一样实现,但它只是告诉我“选项无效”。所以我的问题是,我怎样才能真正从子齿轮下载日志?

【问题讨论】:

    标签: openshift openshift-client-tools


    【解决方案1】:

    我不认为你可以直接使用 RHC 来得到你想要的。

    但是,您可以使用以下方法找到您的所有 GEARS:

    rhc app show APP_NAME --gears | awk '{print $5}' | tail -n +3
    

    从此列表中,您可以列出属于该应用程序的每个齿轮的所有日志。

    for url in $(rhc app show APP_NAME --gears | awk '{print $5}' | tail -n +3); do for dir in $(ssh $url "ls -R | grep -i log.*:"); do echo -n $url:${dir%?}; echo; done; done 
    

    您可以使用简单的 scp 命令从所有设备中获取您需要的文件:

    for file_dir in $(for url in $(rhc app show APP_NAME --gears | awk '{print $5}' | tail -n +3); do for dir in $(ssh $url "ls -R | grep -i log.*:"); do echo -n $url:${dir%?}; echo; done; done); do scp "$file_dir/*" .; done
    

    【讨论】:

    【解决方案2】:

    如果你需要下载任何文件,你可以使用像 FileZilla 这样的 SFTP 客户端,这样你就可以从服务器上复制文件。

    【讨论】:

      【解决方案3】:

      我知道原来的问题发布已经有一段时间了,但是我今天刚刚碰到同样的问题,发现如果你知道齿轮 SSH URL,你可以直接使用 scp 命令:

      scp local_file user@gear_ssh:remote_file
      

      将文件上传到设备,或

      scp user@gear_ssh:remote_file local_file
      

      设备下载。

      【讨论】:

        猜你喜欢
        • 2016-11-18
        • 2021-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-12
        相关资源
        最近更新 更多