如何運行腳本,取決於互聯網連接

如何運行腳本,取決於互聯網連接

我經常使用 sshfs 掛載遠端驅動器。我很想自動安裝這個。但是,如果我將其掛載到 .bashrc 或啟動腳本中,掛載通常會失敗,因為我的無線網路連線尚未建立。

有誰知道每次建立連接時執行 bash 腳本或自動掛載 sshfs 驅動器的簡單方法?

答案1

將您的腳本加入/etc/network/if-up.d/.為您的腳本命名,不帶“.sh”副檔名。

另外,在新增腳本後,運行chmod +x /etc/network/if-up.d/yourscriptname以授予必要的權限。

確保文件中提到了開啟時應觸發腳本的網路介面(例如 wlan0 或 eth0)/etc/network/interfaces

答案2

編者註:Cuttlefish 自 2012 年以來就沒有更新過,並且不在任何目前的 Ubuntu 儲存庫中

烏班圖12.04

  • 安裝烏賊:一個簡單的工具,透過在觸發特定事件時執行操作來實現電腦上的反射。
  • 打開 Cuttlefish 並點擊New

    步驟1

    • 給它一個名字,然後更改受刺激而激活選項打開。
    • 點選刺激,選擇類別網路並輸入連接至無線區域網。按一下“確定”。

    第2步

    • 您也可以選擇無線網路的SSID,並可以選擇是否在啟動時檢查它。

    步驟3

    • 現在您必須指定一個反應。去反應選項卡,然後按一下「新增」。選擇應用領域從類別和啟動應用程式(進階模式)從類型。

    步驟4

    • 現在指定要在可執行選項中執行的腳本。您甚至可以將參數傳遞給腳本。

    步驟5

    • 就是這樣!還要確保在啟動應用程式中添加 Cuttlefish。去編輯 > 首選項並啟用自動啟動選項。

    步驟6

答案3

我將回答OP問題的這一部分:“我希望自動安裝這個”

我最喜歡的自動掛載網路共用工具是 autofs: https://help.ubuntu.com/community/Autofs

AutoFS 是我為所有筆記型電腦和工作站安裝 NAS 的首選工具。

autofs 是一個根據需要自動掛載目錄的程式。自動掛載僅在訪問時掛載,並在一段時間不活動後卸載。因此,與透過 fstab 進行靜態掛載相比,自動掛載 NFS/Samba 共用可以節省頻寬並提供更好的整體效能。

答案4

systemd如今似乎已經接管了網路。

$ networkctl
WARNING: systemd-networkd is not running, output will be incomplete.

IDX LINK             TYPE               OPERATIONAL SETUP
  1 lo               loopback           n/a         unmanaged
  2 enp0s25          ether              n/a         unmanaged
  3 wlo1             wlan               n/a         unmanaged

3 links listed.

它還具有與介面對應的單元

$ systemctl list-units |grep wlo1
sys-devices-pci0000:00-0000:00:1c.3-0000:24:00.0-net-wlo1.device                                                        loaded active plugged   Centrino Ultimate-N 6300 (3x3 AGN)
sys-subsystem-net-devices-wlo1.device                                                                                   loaded active plugged   Centrino Ultimate-N 6300 (3x3 AGN)

顯然您可以在服務單元檔案中使用它們。因此,只需建立一個服務單元來運行腳本,並在內部使用類似的東西來使其在網路上有條件地運行:

BindsTo=sys-subsystem-net-devices-wlo1.device
After=sys-subsystem-net-devices-wlo1.device

祝你好運!我還沒有測試過這個,所以「你的里程可能會有所不同」。

資料來源:

相關內容