Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
require 'tmpdir'
pcap_files = ARGV.map do |v|
File.expand_path(v)
end
pwd = Dir.pwd
pcap_files.each do |pcap_file|
Dir.mktmpdir do |tmpdir|
Dir.chdir(tmpdir) do
File.write('fluentd.conf', <<-EOC)
<source>
@type forward
</source>
<match **>
@type file
path output
buffer_type memory
flush_interval 0s
</match>
EOC
unless system("fluentd", "-c", "fluentd.conf", "-d", "fluentd.pid")
raise
end
unless system("tcptrace", "-e", pcap_file)
raise
end
unless system("cat *_contents.dat | nc localhost 24224")
raise
end
pid = File.read("fluentd.pid").to_i
Process.kill(:TERM, pid)
sleep 1 # FIXME
Dir["output.*.log"].each do |file|
FileUtils.mv(file, File.join(pwd, "#{File.basename(pcap_file)}.#{file}"))
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment