Openshift 如何从子gears下载日志

Openshift 如何从子gears下载日志,openshift,openshift-client-tools,Openshift,Openshift Client Tools,我已经在多节点设置中运行了OpenShift Enterprise 2.0。我正在运行一个简单的JBoss缩放应用程序(3个齿轮,所以HAProxy和2个JBoss齿轮)。我在.openshift/action_hooks中使用了一个pre_start_jbossews脚本来配置详细的GC日志记录(仅以GC.log作为文件名)。但是,我不知道如何从运行JBoss的gears中获取gc.log文件 [非常有趣的是,head/parent gear(运行HAProxy)中有一个空的gc.log文件。

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

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

我试着跑

rhc scp <appname> download . jbossews/gc.log --gears
rhc scp下载。jbossews/gc.log——齿轮

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

我不认为您可以直接使用RHC来获得您想要的

  • 这可能需要对RHC SCP命令提出增强请求。
    • 请在此处存档:
但是,您可以使用以下方法查找所有档位:

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

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

我知道发布原始问题已经有一段时间了,但我今天遇到了相同的问题,发现如果您知道gear SSH URL,可以直接使用scp命令:

scp local_file user@gear_ssh:remote_file
将文件上载到齿轮,或

scp user@gear_ssh:remote_file local_file

设备下载

我实际上没有尝试过上面的解决方案,但无论如何我都会接受。(我已经有了一个涉及root用户的解决方案。)我继续并打开了一个。