我试图测量无线 802.11s 网状连接上两台计算机之间的带宽、数据包丢失、延迟和抖动。
我正在尝试制作一个(我的第一个)bash 脚本,它可以执行以下操作:
ptpd、tcpdump、iperf)记录数据。iperf我自己的电脑上传输结束后,它应该SSH到远程计算机并杀死服务。这个想法是在 for 循环中运行这三个步骤,这会增加 iperf 为每次迭代传输的包大小并记录结果数据。
我知道如何通过ssh host@adress process.
然而,我对如何通过 SSH 和注销启动多个进程一无所知,因为一旦我注销,这些进程就会终止。我看过screen和nohup命令,但不知道如何在脚本中使用它们。
提前致谢!
编辑:
感谢到目前为止的所有帮助。
我现在让 nohup 开始工作,正如人们指出的那样,这很简单。所以现在我得到了:ssh host@adress nohup ./script.sh > /dev/null 2>&1 &在我的主电脑上的脚本中。这会在远程电脑上启动一个脚本就好了,然后注销 SSH。下一个问题是如何在远程 pc 上作为 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
使用screen.
一些有用的快捷键:
分离后,用于screen -r恢复会话。还有screen -x如果屏幕会话没有分离,而是以其他方式进入后台(或者实际上仍在另一个终端上运行)。
从--help上nohup;
Usage: nohup COMMAND [ARG]...
or: nohup OPTION
Run COMMAND, ignoring hangup signals.
Run Code Online (Sandbox Code Playgroud)
只需&在您的nohup <whatever you want to run>命令中添加一个。这意味着除非你特意杀死衍生的nohup进程,否则它永远不会消失。
您可以使用screenor完全跳过 nohup tmux,我听说即使到远程主机的连接已断开,它也会保持进程运行(这是它相当棒的优势之一)。我不知道如何做到这一点,所以你需要在下载后通过man screen/来自己阅读man tmux。
您可以在程序前面添加nohup.
例如nohup myprogram &。这将启动程序并将所有输出发送到名为 nohup.out 的文件。当您注销时,它还会捕获 sigHUP。
另一个解决方案是运行screen或tmux
| 归档时间: |
|
| 查看次数: |
3693 次 |
| 最近记录: |