Не удается заставить скрипт работать в фоновом режиме - PullRequest
0 голосов
/ 12 апреля 2019

Я бы хотел, чтобы мой скрипт запускался в фоновом режиме, SSH на другом компьютере, запускал tcpdump, создавал файл pcap и сохранял его на своем локальном компьютере. У меня есть все это, за исключением работы в фоновом режиме.

Я рассмотрел несколько решений по переполнению стека ( пример ), но, похоже, они не работают для меня. Правда, я новичок в bash, поэтому вполне возможно, что я читаю их неправильно.

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

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Насколько я понял вашу задачу, это то, что вы хотите:

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

Простыми словами:

nohup - это позволит вам закрыть ваш терминал, и скрипт продолжит работу

ssh ... - это команда для выполнения

&> - перенаправить как stdout, так и stderr в файл (Bash 4)

& - отправляет команду в фоновый режим

Примечание: &> отправит в файл и stdout, и stderr, вам это нужно, если вы хотите, чтобы в вашем файле были итоговые строки из tcpdump. Они написаны в stderr:

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

Если вы не хотите иметь эти строки, отправьте stderr в / 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 &
1 голос
/ 12 апреля 2019

Проверьте окончание цитаты, может быть, в этом проблема ...

Или вы можете сохранить файл удаленно и загрузить обратно с помощью scp (SecureCoPy).Например:

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

...