6

$KARAF_HOME/bin/start我在 CentOS 6.5中以服务器模式启动了 Apache Karaf 3.0.0 。然后我想运行几个命令$KARAF_HOME/bin/client并捕获这些命令的输出,以确保命令成功运行。输出确实在我的控制台上吐出,但我永远无法将其重定向到文件中。似乎 Karaf 没有向输出流或错误流写入任何内容。我尝试了以下方法:

[apache-karaf-3.0.0]$ ./bin/start clean
[apache-karaf-3.0.0]$ ./bin/client "bundle:list"
Logging in as karaf
282 [pool-2-thread-3] WARN org.apache.sshd.client.keyverifier.AcceptAllServerKeyVerifier - Server at /0.0.0.0:8101 presented unverified key:
START LEVEL 100 , List Threshold: 50
 ID | State  | Lvl | Version                 | Name
------------------------------------------------------------------------------------
 91 | Active |  80 | 1.8.0                   | Commons Codec
 92 | Active |  80 | 2.6                     | Commons Lang
 93 | Active |  80 | 15.0.0                  | Guava: Google Core Libraries for Java

[apache-karaf-3.0.0]$ ./bin/client "bundle:list" >& bundleList
[apache-karaf-3.0.0]$ cat bundleList
null

文件中没有写入任何内容bundleList。管道输出似乎也无济于事。

4

3 回答 3

4

要使 Aviv 的解决方案起作用,只需使用管道,例如“bundle:list | tac -f /tmp/yourfile”

于 2016-06-21T22:22:09.927 回答
3

我能够在 Karaf 版本 3.0.2 中捕获客户端输出。

user@hostname:~$ client bundle:list > bundleinfo.txt

这会在控制台上产生以下调试信息:

2053 [sshd-SshClient[36c8e545]-nio2-thread-2] WARN org.apache.sshd.client.keyverifier.AcceptAllServerKeyVerifier - 服务器在 [/0.0.0.0:8101, DSA, xx:xx:xx:xx:xx: xx:xx:c 2:3a:5a:9b:87:ed:e0:b2:6a] 提供未经验证的 {} 键:{}

..当然还有带有预期内容的 bundleinfo.txt 文件:

user@hostname:~$ head -5 bundleinfo.txt
START LEVEL 100 , List Threshold: 50
 ID | State    | Lvl | Version                 | Name
---------------------------------------------------------------------------------------------
38 | Active   |  80 | 3.2.5.RELEASE           | Spring Security Core
39 | Active   |  80 | 1.0.0.1                 | Apache ServiceMix :: Bundles :: javax.inject
于 2015-04-15T08:32:34.913 回答
3

对于命令行,我使用“tac”并使用 -f 重定向到一个文件,在 Karaf 3.0.3 中,尝试它或了解它与 --help 的作用

于 2015-05-04T12:32:22.123 回答