USB 드라이브가 마운트될 때 스크립트가 작동하도록 만드는 방법

USB 드라이브가 마운트될 때 스크립트가 작동하도록 만드는 방법

좋아, 이것이 내가 달성하고 싶은 것입니다.

언제든지 스크립트를 실행하도록 여러 시스템을 구성하고 싶습니다.어느USB 스틱을 마운트한 다음 USB 스틱에 특정 폴더가 있으면 해당 내용을 시스템의 폴더에 복사합니다.

특정 USB가 마운트되었을 때 스크립트를 실행하는 방법을 조사하고 찾았지만 아무 것도 찾지 못했습니다. 둘째, 스크립트가 새로 마운트된 USB 스틱에서 자동으로 작동하도록 하기 위해 스크립트의 마운트 지점이나 루트 경로를 스크립트나 다른 해결 방법에 전달해야 합니다.

실제로 디렉토리를 찾은 다음 수행하려는 디렉토리를 복사하는 스크립트를 작성했지만 마운트된 USB에서 이를 사용하는 방법을 모르겠습니다.

본질적으로 실제 이유는 스틱을 여러 시스템에 연결하고 파일을 각 시스템에 자동으로 복사할 수 있기를 원하기 때문입니다. 2개의 우분투 설치와 라즈베리 파이 기반의 또 다른 2개의 libreelec이 있으므로 추가 패키지를 설치할 수 있는 옵션이 많지 않습니다. 주로 기본 systemd 및 bash 스크립트를 원합니다.

나는 우분투와 libreelec에서 작동하기 때문에 크로스 리눅스 솔루션을 원합니다. 나는 시스템 d를 사용하는 것을 선호하지만 udev가 더 나은 솔루션이 될 수 있습니다.

답변1

udev 규칙은 이를 달성하는 가장 쉬운 방법입니다. udev 규칙은 /etc/udev/rules.d일반적으로 다음 형식으로 저장되며 이를 따릅니다. NN-filename.rule여기서 NN어떤 규칙 파일이 먼저 로드되는지 결정합니다.

예를 들어, /etc/udev/rules.d/10-local.rules다음을 추가하면 이동식 블록 장치가 연결될 때마다 다음 형식의 커널 이름으로 이벤트가 트리거됩니다 sdX.

KERNEL=="sd?", SUBSYSTEM=="block", ATTR{removable}=="1", RUN+="/path/to/script.sh"

장치가 설치되기 전에 스크립트가 시작될 수 있으므로 장치를 수동으로 설치해야 할 수도 있습니다.

다른 규칙을 일치시키려는 경우 사용 중인 장치로 인해 발생하는 모든 이벤트의 속성을 확인할 수 있습니다 udevadm info -a /dev/devname.

관련 정보