#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Net::OpenSSH; my $username = 'username'; my $password = 'password'; my $params; my $session_obj; $session_obj = Net::OpenSSH->new("10.2.200.12", user => $username, password => $password, strict_mode => 0,master_opts => [ -o => "StrictHostKeyChecking=no"]); $session_obj->error and die "ssh failed: " . $session_obj->error; print Dumper($session_obj); # Each command runs in its own session my ($out,$err) = $session_obj->capture2('nohup /usr/sbin/tcpdump -i eth1 -s 1500 -w /tmp/tmp.pcap &'); print "THE OUT IS $out\nTHE ERROR IS $err\n"; ($out,$err) = $session_obj->capture2('ping -I eth1 -c 3 192.168.107.254'); print "THE OUT IS $out\nTHE ERROR IS $err\n"; ($out,$err) = $session_obj->capture2('killall tcpdump'); print "THE OUT IS $out\nTHE ERROR IS $err\n"; ($out,$err) = $session_obj->capture2('tcpdump -r /tmp/tmp.pcap'); print "THE OUT IS $out\nTHE ERROR IS $err\n";