Я пытаюсь измерить пропускную способность, потерю пакетов, задержку и джиттер между двумя компьютерами по беспроводному сетевому соединению 802.11s.
Я пытаюсь сделать (мой первый) скрипт bash, который может сделать следующее:
- SSH к другому компьютеру и начать регистрацию данных из сервисов (
ptpd
,tcpdump
,iperf
). - Запустите те же процессы на моем собственном компьютере и начните регистрировать данные.
- Когда передача
iperf
на мой собственный компьютер завершена, он должен подключиться к удаленному компьютеру по протоколу SSH и завершить работу служб.
Идея заключается в том, что эти три шага выполняются в цикле for, который увеличивает размер пакета, передаваемого iperf для каждой итерации, и регистрирует полученные данные.
Я знаю, как запустить процесс на удаленном компьютере с помощью ssh host@adress process
.
Однако я не знаю, как запустить несколько процессов через SSH и выйти из системы, так как процессы завершаются после выхода из системы. Я посмотрел на команды screen
и nohup
, но не знаю, как использовать их в скрипте.
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Спасибо за всю помощь до сих пор.
У меня теперь нет работы, все было довольно просто, как указывали люди.
Итак, теперь я получил: ssh host@adress nohup ./script.sh > /dev/null 2>&1 &
в сценарии на моем основном компьютере.
Это запускает сценарий на удаленном компьютере, а затем выходит из системы SSH. Следующая проблема заключается в том, как выполнить сценарий на удаленном компьютере как sudo, поскольку это необходимо для tcpdump.
Попытка ssh host@adress **sudo** nohup ./script.sh > /dev/null 2>&1 &
не работает.
Есть идеи?
РЕДАКТИРОВАТЬ 2:
Если кто-то застрял с той же проблемой, я нашел руководство, как решить эту проблему:
http://www.pantz.org/software/ssh/using_ssh_and_sudo_instead_of_root_for_remote_commands.html