我有以下 bash 命令,其中我正在执行 tcpdump,然后使用 date 命令保存文件。我想将此命令直接嵌入到我的 Python 脚本中,而不必单独调用 bash 脚本。
#!/bin/bash
timeout 2 tcpdump -i eth1 -s 96 -w /usr/src/pcapFiles/dump$(date +%y%m%d-%H%M%S).pcap
当我运行上面的脚本时,我得到了以下类型的文件名,这正是我所需要的(即日期和时间呈现在名称中):
dump131104-191834.pcap
但是,我很难从 Python 中复制上述命令。通过在 Python 中嵌入命令,我已经走到了这一步。我不确定如何破坏 date 命令,以便它可以像我需要的那样呈现文件名。以下是我的 Python 命令:
tcpd = subprocess.Popen(["timeout", "2", "tcpdump", "-i", "eth1", "-s", "96", "-w", "/usr/src/pcapFiles/dump$(date +%y%m%d-%H%M%S).pcap"], stdout=subprocess.PIPE)
output, err = tcpd.communicate()
使用此命令,我从 tcpdump 获得以下输出文件名
dump$(date +%y%m%d-%H%M%S).pcap