インターネット接続に応じてスクリプトを実行する方法

インターネット接続に応じてスクリプトを実行する方法

私はよく 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

    • 名前を付けて変更する刺激によって活性化されるオプションをオンにします。
    • クリック刺激カテゴリーを選択通信網と入力WLANに接続する[OK]をクリックします。

    ステップ2

    • ワイヤレス ネットワークの SSID を選択することもできます。また、起動時にこれをチェックするかどうかを選択することもできます。

    ステップ3

    • ここで反応を指定する必要があります。反応タブをクリックして追加をクリックします。アプリケーションカテゴリーからアプリケーションを起動する(詳細モード)タイプから。

    ステップ4

    • 次に、実行可能オプションで実行するスクリプトを指定します。スクリプトにパラメータを渡すこともできます。

    ステップ5

    • 以上です。また、スタートアップアプリケーションにCuttlefishを追加してください。編集 > 環境設定自動起動オプションを有効にします。

    ステップ6

答え3

OP の質問のこの部分に答えます: 「このマウントを自動的に取得したいです」

ネットワーク共有を自動マウントするための私のお気に入りのツールは autofs です。 https://help.ubuntu.com/community/Autofs

AutoFS は、すべてのラップトップとワークステーションの NAS をマウントするための私のお気に入りのツールです。

autofs は、必要に応じてディレクトリを自動的にマウントするプログラムです。自動マウントはアクセスされたときにのみマウントされ、一定時間操作がないとアンマウントされます。このため、NFS/Samba 共有を自動マウントすると帯域幅が節約され、fstab による静的マウントに比べて全体的なパフォーマンスが向上します。

答え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

頑張ってください! まだテストしていないので、「結果は異なる可能性があります」。

出典:

関連情報