네트워크가 다운되거나 업될 때 명령 실행

네트워크가 다운되거나 업될 때 명령 실행

네트워크 인터페이스가 작동하거나 작동 중지될 때 네트워크 관리자 스케줄러가 스크립트를 실행하도록 하려고 합니다. 연결이 설정되거나 연결이 끊어졌을 때 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를 사용하고 있습니다.

관련 정보