所以我遇到类似于如何将ssh作业发送到后台的问题.
我有一个Windows c#程序自动执行使用http://sshnet.codeplex.com/在远程linux OS上执行tcpdump .我正在尝试在远程linux上执行tcpdump并在断开连接后让它继续运行.
我一直在使用plink进行大量调试,但似乎无法达到预期的效果.我试过了:
plink root@10.5.1.1 bash -c "tcpdump -i eth0 -w test.cap"
Run Code Online (Sandbox Code Playgroud)
但它保留了sshclient直到我ctrl + C(不适用于自动化解决方案).我也尝试过各种变化:
plink root@10.5.1.1 bash -c "tcpdump -i eth0 -w test.cap &"
Run Code Online (Sandbox Code Playgroud)
但是该命令根本不执行(test.cap不存在)或立即终止(test.cap包含1行).在测试过程中,我已经留下了平去,所以捕捉应有 的财产以后 ...
前面提到的链接解决了屏幕问题,但远程linux os不可配置,没有屏幕.欢迎任何建议.
在后一种情况下,tcpdump断开连接时可能会中止您的进程.尝试:
plink root@10.5.1.1 bash -c "nohup tcpdump -i eth0 -w test.cap &"
Run Code Online (Sandbox Code Playgroud)
请参阅联机帮助页nohup.您可能还需要考虑将stdout和stderr重定向到文件或/dev/null阻止nohup将输出写入文件:
plink root@10.5.1.1 bash -c "nohup tcpdump -i eth0 -w test.cap >/dev/null 2>&1 &"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6429 次 |
| 最近记录: |