Próbuję zmierzyć przepustowość, utratę pakietów, opóźnienia i jitter między dwoma komputerami w bezprzewodowym połączeniu sieciowym 802.11s.
Próbuję stworzyć (mój pierwszy) skrypt bash, który może wykonać następujące czynności:
- SSH na innym komputerze i rozpocznij rejestrowanie danych z usług (
ptpd
,tcpdump
,iperf
). - Uruchom te same procesy na moim komputerze i rozpocznij rejestrowanie danych.
- Kiedyś
iperf
transmisja na moim własnym komputerze jest zakończona, powinna SSH do zdalnego komputera i zabić usługi.
Pomysł polega na tym, że te trzy kroki są uruchamiane w pętli for, która zwiększa rozmiar pakietu przesyłanego przez iperf dla każdej iteracji i rejestruje wynikowe dane.
Wiem, jak uruchomić proces na zdalnym komputerze przez ssh host@adress process
.
Nie mam jednak pojęcia, jak uruchomić wiele procesów poprzez SSH i wylogować, ponieważ procesy są kończone po wylogowaniu. Spojrzałem na screen
i nohup
poleceń, ale nie wiem, jak ich używać w skrypcie.
Z góry dziękuję!
EDYTOWAĆ:
Dziękuję za całą dotychczasową pomoc.
Mam teraz do roboty, to było całkiem proste, jak zauważyli ludzie.
Więc teraz mam: ssh host@adress nohup ./script.sh > /dev/null 2>&1 &
w skrypcie na moim głównym komputerze.
Spowoduje to uruchomienie skryptu na zdalnym komputerze, a następnie wylogowanie się z SSH. Następnym problemem jest wykonanie skryptu na zdalnym komputerze jako sudo, ponieważ jest to wymagane przez tcpdump.
Próbować ssh host@adress **sudo** nohup ./script.sh > /dev/null 2>&1 &
nie działa.
Jakieś pomysły?
EDYCJA 2:
Jeśli ktoś utknął z tym samym problemem, znalazłem przewodnik, jak rozwiązać ten problem:
http://www.pantz.org/software/ssh/using_ssh_and_sudo_instead_of_root_for_remote_commands.html
źródło