UDEV 규칙 간섭

UDEV 규칙 간섭

저는 Raspian OS(Linux)를 사용하여 Raspberry Pi 3용으로 개발 중입니다. USB를 포트에 연결할 때 특정 위치의 데이터를 USB로 복사하고 해당 위치의 파일을 지워야 하는 간단한 작업을 수행하려고 합니다. 여기에 제 스크립트(testscript.sh)가 있습니다.

#gpio 1 and 0 are for led on/off while copying 
gpio -g mode 17 out
gpio -g write 17 1
sleep 10
sudo cp -f /home/pi/NewLog.log /media/usb/NewLog-$(date -u'+%Y%m%d%H%M').log
if [ $? -eq 0 ]; then
   echo -n > /home/pi/NewLog.log
fi
gpio -g write 17 0
echo "content copied to USB"

/etc/udev/rules.d에 UDEV 규칙을 만들었습니다.

커널 == "sd*", 하위 시스템 == "usb", 작업 == "추가", RUN +="/home/pi/testscript.sh"

또한 USB 자동 마운트가 /media/usb 폴더에 있도록 usbmount를 설치했으며 /lib/udev/rules.d에서도 usbmount.rules를 찾았습니다.

이제 USB를 연결할 때마다 빈 파일이 USB에 복사되고 USB를 뽑은 후 실제 복사된 파일은 /media/usb... 위치에 있습니다.

/etc/udev/rules.d/myrule의 규칙은 /lib/udev/rules.d/usbmount 이전에 실행되는 것 같습니다. 아마도 이것이 USB 마운트 전에 /media/usb에 데이터를 복사하는 이유일 것입니다! 어떤 도움이라도 대단히 감사하겠습니다.

답변1

해당 디렉토리가 마운트 지점인지 확인할 수 있습니다(다음에 따라).이것답변) 무엇이든 복사하기 전에. 수표를 무한 while 루프에 넣을 수 있지만 중단될 수 있으므로 그다지 정통적이지 않다고 생각합니다.

관련 정보