【发布时间】:2012-07-16 17:51:29
【问题描述】:
所以我有一个类似how to send ssh job to background的问题。
我有一个 Windows c# 程序可以使用http://sshnet.codeplex.com/ 在远程 linux 操作系统上自动执行 tcpdump。我正在尝试在远程 linux 上执行 tcpdump,并在断开连接后让它继续运行。
我一直在使用 plink 进行大量调试,但似乎无法达到预期的结果。我试过了:
plink root@10.5.1.1 bash -c "tcpdump -i eth0 -w test.cap"
但它持有 sshclient 直到我 ctrl+C(不适用于自动化解决方案)。我还尝试了以下变体:
plink root@10.5.1.1 bash -c "tcpdump -i eth0 -w test.cap &"
但是该命令根本不执行(test.cap 不存在)或立即终止(test.cap 包含 1 行)。在测试期间,我留下了一个 ping,所以捕获应该有 somthing...
前面提到的链接解决了screen的问题,但是远程linux操作系统不可配置,没有screen。欢迎提出任何建议。
【问题讨论】:
-
这些解决方案都不适合我,在 Fedora 机器上远程执行 tcpdump。但是如果tcpdump命令是用bash脚本封装的,那么脚本可以通过ssh命令远程执行,按预期完成。
-
尽管我很想这样做,但在我的例子中,远程机器是一个只读嵌入式操作系统。