So I want to make a udev rule which does, when I connect my usb key to my computer the rule mounts my usb key, takes a file from my computer, copies it to my usb key and then unmounts my usb. So I did my udev rule like that:
ACTION=="add" SUBSYSTEM=="BLOCK", ENV{ID_VENDOR_ID}=="0718", ENV{ID_MODEL_ID}=="0618", ENV{ID_SERIAL_SHORT}=="CB00524932077759", RUN+="/bin/mount /dev/sda1 /media/usb"
ACTION=="add" SUBSYSTEM=="BLOCK", ENV{ID_VENDOR_ID}=="0718", ENV{ID_MODEL_ID}=="0618", ENV{ID_SERIAL_SHORT}=="CB00524932077759", RUN+="/bin/ScriptCopy"
And I wrote a script, in /bin, called ScriptCopy:
#!/bin/sh
cp /root/average.db /media/usb/database/average.db
ldconfig
echo "Done!"
exit 0
So the first part of my udev rule works, it mounts the usb key, but then my script does not work, I do not really understand why. Can someone explain it to me? Thx
edit 1: when I am running my script in the terminal, doing
./ScriptCopy
it works! so I must have a problem in my udev rule.
edit 2: I found out something really strange (at least, that I don't understand at all), my rule works if I am plugging my USB key while I am on the GUI (XFCE) on my banana pi. But I am working with ssh, so normaly I don't open the GUI. I want to do is, to run some commands with the ssh, trigger my python script and then I take the data with my usb key once every two days. But when I plug my usb while banana pi is not on the GUI (while I triggered my script from another computer using ssh), it does not transfert the data to my usb key. I don't know if it was understandable.
Edit 3: Ok I had an error of path in my UDEV rule because on ssh, I was not in the same user. I am closing the topic.
done
statement? To the best of my knowledge this defines the end of a loop, which you don't have. Exit the script usingexit 0
. The0
defines a successful execution. Although this will probably not solve your issue. – ShellFish#!/bin/bash
at top instead? To see debug mode, useset -vx
before yourcp
command. AND have you created yourdatabase/
dir on your USB? Finally, if you created script anywhere near MS Windows, dodos2unix ScriptCopy
. Good luck. – shellter