【发布时间】:2010-12-08 09:17:32
【问题描述】:
我无法向服务器发送命令。但是,连接已建立,我可以执行“rm /usr/testfile”之类的简单操作。当我尝试执行“tail -f /opt/logs/applications/db/cbss.log >> cbsslog_tailed”之类的命令时。请帮我通过java代码执行tail命令。
【问题讨论】:
-
我认为您需要详细说明您正在尝试做什么,从这个“服务器”开始,以及您希望如何连接到它。您是否尝试使用 telnet 或 ssh 等协议远程登录到机器,然后执行某些 shell 命令?恐怕这个问题并不清楚。
-
嗨 Vineet,感谢您的回复。我正在开发一种工具来收集日志(从远程 Solaris 服务器)并将其保存在本地系统(Windows)中。为此,我使用 telnet 与远程服务器建立连接,并使用 Runtime.Exec() 发出命令。我想知道的是,Runtime.Exec() 是向服务器还是我们有其他方法也可以向远程服务器发出命令?正如我之前提到的,我无法通过发出命令来跟踪日志。请就此提出您的建议。谢谢 vineet
-
但是,我尝试了其他一些方法,如下所示: public void sendCommand(String command) throws IOException{ if(command.endsWith("\n")) pw.print(command);否则 pw.println(command); pw.flush(); }
-
Command 是“rm /asdf”,我能够成功删除服务器中的文件 asdf。但是相同的方法不适用于 tail 命令。请就此向我提出建议。