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ś
iperftransmisja 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