【发布时间】:2015-05-20 05:34:16
【问题描述】:
我只想使用 paramiko 在后台运行 tcpdump。
下面是部分代码:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=login, password=password)
transport = ssh.get_transport()
channel = transport.open_session()
channel.get_pty()
channel.set_combine_stderr(True)
cmd = "(nohup tcpdump -i eth1 port 443 -w /tmp/dump20150317183305940107.pcap) &"
channel.exec_command(cmd)
status = channel.recv_exit_status()
执行此代码后,pgrep tcpdump 什么也不返回。
如果我删除 & 符号 tcpdump 运行正常,但我的 ssh shell 被阻止。
如何在后台正确运行tcpdump?
我试过什么命令:
cmd = 'nohup tcpdump -i eth1 port 443 -w /tmp/dump20150317183305940107.pcap &\n'
cmd = "screen -d -m 'tcpdump -i eth1 port 443 -w /tmp/dump20150317183305940107.pcap'"
cmd = 'nohup sleep 5 && echo $(date) >> "test.log" &'
【问题讨论】:
标签: python linux ssh paramiko tcpdump