인터넷 연결에 따른 스크립트 실행 방법

인터넷 연결에 따른 스크립트 실행 방법

나는 종종 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 단계

    • 이름을 지정하고 변경하세요.자극에 의해 활성화됨옵션을 ON으로 설정하세요.
    • 클릭자극제, 카테고리를 선택하세요회로망그리고 유형WLAN에 연결. 확인을 클릭하세요.

    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

행운을 빌어요! 나는 이것을 테스트하지 않았으므로 "마일리지가 다를 수 있습니다".

출처:

관련 정보