Matthew Mccormick
Matthew Mccormick

Reputation: 9

Can't get script to run in the backround

I would like my script to run in the backround, SSH into another computer, run tcpdump, produce a pcap file and save it to my local computer. I have all of this working save for the running in the background portion.

I have looked at several solutions on Stack Overflow (example) but they don't seem to work for me. Admittedly I am a novice with bash however so it is entirely possible that I am reading them incorrectly.

ssh root@ipaddress "tcpdump -c 400000 -s 0 -U -n -w - -i eth0 not arp" &>/dev/null &disown \ > /root/Destop/BashPcap/01Bash.pcap

Upvotes: 0

Views: 219

Answers (2)

ISQ
ISQ

Reputation: 2893

As far as I understood your task this is what you want:

nohup ssh root@ipaddress "tcpdump -c 400000 -s 0 -U -n -w - -i eth0 not arp" &> /root/Destop/BashPcap/01Bash.pcap &

In simple words:

nohup - it will allow you to close your terminal and the script will continue to run

ssh ... - this is the command to execute

&> - redirect both stdout and stderr to file (Bash 4)

& - sends command to the background

Note: &> will send to the file both stdout and stderr, you need this if you want to have in your file the summary lines from tcpdump. They are written to stderr:

N packets captured
X packets received by filter
Y packets dropped by kernel

If you do not want to have these lines, then send stderr to /dev/null

nohup ssh root@ipaddress "tcpdump -c 400000 -s 0 -U -n -w - -i eth0 not arp"  2>/dev/null > /root/Destop/BashPcap/01Bash.pcap &

Upvotes: 1

Roscrach
Roscrach

Reputation: 11

Check your quotation endings maybe that's the problem...

Or you can save the file remotely and download back using scp (SecureCoPy). Eg:

scp root@ipaddress:/path/to/file ~/Documents/path-where you-want-to-save.pcap

Upvotes: 1

Related Questions