Linux에서 post-mount 및 pre-umount 스크립트를 제공하는 방법이 있습니까?
마운트 할 때와 마운트 해제하기 전에 (예 : 동기화를 위해) 저장 매체에서 일부 스크립트를 작성하려고합니다.
도움을 주셔서 감사합니다.
Linux에서 post-mount 및 pre-umount 스크립트를 제공하는 방법이 있습니까?
마운트 할 때와 마운트 해제하기 전에 (예 : 동기화를 위해) 저장 매체에서 일부 스크립트를 작성하려고합니다.
도움을 주셔서 감사합니다.
답변:
/sbin/mount
and /sbin/umount
명령을 호출하는 사람들을 위해이 작업을 수행하려는 경우 두 랩퍼 프로그램을 작성하고 원하는 랩퍼 프로그램에 프로그램을 작성하기 만하면됩니다.
래퍼 프로그램 /sbin/mount
은를 실제를 호출 하는 래퍼 프로그램으로 대체합니다 /sbin/mount
( /sbin/mount-real
또는 로 이름이 바 /sbin/umount-real
)). 다른 사람이 실제 프로그램을 호출하지 못하게하려면 그룹 권한을 사용하여 제한하고 래퍼 프로그램에서 SGID 비트를 설정하십시오.
mount(2)
라이브러리 호출 을 수정 하려는 경우, 특히 시작 및 종료 중에 내부 시스템 처리에 문제가 발생할 수 있으므로 노력이 많고 어려우며 바람직하지 않을 수 있습니다.
랩퍼 프로그램을 사용하더라도 시스템 간섭을 피하고 적절히 조정하려면 철저하게 테스트해야합니다.
디렉토리가 마운트 해제되기 전에 전송 된 inotify 이벤트가 있는지 확실하지 않기 때문에 사전 마운트 해제 이벤트가 실제로 포착하기 까다로울 수 있지만 inotify 커널 후크를 사용할 수 있습니다.
/media
또는 아래에 /mnt
) 생성 되었지만 파일 시스템이 해당 디렉토리에 마운트되어 있지 않다는 것을 알려줍니다.
아마 영원히 작동하는 것입니다 가장 간단한 해결책은 폴링하는 것입니다 /etc/mtab
또는 /proc/mounts
. 해당 파일을 변경하면 무언가가 마운트 또는 마운트 해제되었음을 의미합니다. 그런 다음 원하는 장치가 있는지 확인해야합니다.
Udev는 장치가 연결되어 있는지 알려주기 때문에 최상의 솔루션이 아닙니다. 장치가 실제로 마운트되었는지 여부는 말하지 않습니다. 이것은 때로는 효과가 있지만 언젠가는 깨질 것이고 머리카락을 뽑을 수있는 해키 솔루션입니다.
이를 위해 udev 규칙을 작성할 수 있습니다. 내가 좋아하는 뭔가를 사용한 이 자동으로 USB 드라이브에 물건을 백업하십시오. 재미있는 것들.