ネットワークがダウンまたはアップしたときにコマンドを実行する

ネットワークがダウンまたはアップしたときにコマンドを実行する

ネットワークインターフェイスが機能または停止したときに、ネットワーク管理者スケジューラにスクリプトを実行させようとします。接続が確立されたとき、または切断されたときに espeak コマンドを実行したいと思います。 /tmp/log ファイルに書き込むことができますが、 espeak コマンドでは何も聞こえません。端末に直接入力しても機能します。

私がテストしたのは、USBネットワークカードを取り外すことでした(私のコンピュータの唯一のネットワークカードです)。

/etc/NetworkManager/dispatcher.d 実行可能ファイル( 'と呼ばれる)を配置しました。02-ifupdownテスト)

-rwxr-xr-x 1 root root 2293 Mar 26  2018 01-ifupdown
-rwxr-xr-x 1 root root  534 Jan 23 16:42 02-ifupdowntest
-rwxr-xr-x 1 root root 5383 Mar 27  2018 99tlp-rdw-nm

コンテンツを見る02-ifupdownテスト次のように:

#!/bin/bash -e
if [ "$2" = "up" ]; then

    echo "`date`" > /tmp/log
    echo "$1" >> /tmp/log
    echo "$2" >> /tmp/log
    echo "`/usr/bin/espeak "network up"`"

fi

if [ "$2" = "down" ]; then
    echo "$2" >> /tmp/log
    echo "`/usr/bin/espeak "network down"`"


fi

exit 0

Ubuntu 18.04 64ビットLinuxを使用しています。

関連情報