如何在 Linux(bash)中循环多个网络接口,并分别使用每个网络接口运行应用程序?

如何在 Linux(bash)中循环多个网络接口,并分别使用每个网络接口运行应用程序?

我正在构建一个基于 Raspberry Pi 的小型设备,它将有多个 3G 加密狗,每个加密狗内都有不同提供商的 SIM 卡。我想通过每个接口以定时间隔运行 speedtest 的 cli 版本 (speedtest-cli),以便我可以测量特定位置的每个提供商的信号和连接质量。该设备无人值守运行,然后每个 speedtest 结果都会推送到 Google 文档。
我正在尝试找到一种在 bash 或 Python 中执行此操作的方法,我可以将系统切换为使用一个网络接口(例如 3g 加密狗或 Wifi 之一),运行应用程序,记录结果,然后切换到下一个接口。处理这个问题的最佳方法是什么?

答案1

我将会看到for in do如下脚本:

Ifconfig * down

for IFACE in (usb1 usb2 usb3 wlan0); do ifconfig $IFACE up && speedtest-google.script && ifconfig $IFACE down; done

请注意,这只是概念,语法oe&e,并且需要根据您的环境进行调整。

— 为清晰起见进行编辑 — (现在在电脑上)

#!/bin/bash

for IFACE in (usb1 usb2 usb3 wlan0)
 do
  ifconfig $IFACE up &&
  ./path/to/speedtest-google.script && 
  ifconfig $IFACE down
 done

相关内容