Udev 规则和脚本问题
Udev Rules and script issues
所以我想制定一个 udev 规则,当我将我的 usb 密钥连接到我的计算机时,该规则会装载我的 usb 密钥,从我的计算机中获取一个文件,将其复制到我的 usb 密钥,然后卸载我的 usb .
所以我做了我的 udev 规则:
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"
然后我在 /bin 中编写了一个脚本,名为 ScriptCopy:
#!/bin/sh
cp /root/average.db /media/usb/database/average.db
ldconfig
echo "Done!"
exit 0
所以我的 udev 规则的第一部分工作了,它挂载了 usb 密钥,但是我的脚本不工作了,我真的不明白为什么。有人可以向我解释吗?谢谢
编辑 1:
当我 运行 在终端中设置我的脚本时,
./ScriptCopy
有效!所以我的 udev 规则一定有问题。
编辑2:
我发现了一些非常奇怪的东西(至少,我根本不明白),如果我在我的香蕉派上的 GUI (XFCE) 上插入我的 USB 密钥,我的规则就有效。但我正在使用 ssh,所以通常我不会打开 GUI。我想做的是,使用 ssh 运行 一些命令,触发我的 python 脚本,然后我每两天用我的 usb 密钥获取数据一次。但是当我插入我的 usb 而 banana pi 不在 GUI 上时(当我使用 ssh 从另一台计算机触发我的脚本时),它不会将数据传输到我的 usb 密钥。不知道看得懂没有。
编辑 3:
好的,我的 UDEV 规则中有一个路径错误,因为在 ssh 上,我不在同一个用户中。我要结束话题了。
我发现我的 script/udev 规则中有一个路径错误。
所以我想制定一个 udev 规则,当我将我的 usb 密钥连接到我的计算机时,该规则会装载我的 usb 密钥,从我的计算机中获取一个文件,将其复制到我的 usb 密钥,然后卸载我的 usb . 所以我做了我的 udev 规则:
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"
然后我在 /bin 中编写了一个脚本,名为 ScriptCopy:
#!/bin/sh
cp /root/average.db /media/usb/database/average.db
ldconfig
echo "Done!"
exit 0
所以我的 udev 规则的第一部分工作了,它挂载了 usb 密钥,但是我的脚本不工作了,我真的不明白为什么。有人可以向我解释吗?谢谢
编辑 1: 当我 运行 在终端中设置我的脚本时,
./ScriptCopy
有效!所以我的 udev 规则一定有问题。
编辑2: 我发现了一些非常奇怪的东西(至少,我根本不明白),如果我在我的香蕉派上的 GUI (XFCE) 上插入我的 USB 密钥,我的规则就有效。但我正在使用 ssh,所以通常我不会打开 GUI。我想做的是,使用 ssh 运行 一些命令,触发我的 python 脚本,然后我每两天用我的 usb 密钥获取数据一次。但是当我插入我的 usb 而 banana pi 不在 GUI 上时(当我使用 ssh 从另一台计算机触发我的脚本时),它不会将数据传输到我的 usb 密钥。不知道看得懂没有。
编辑 3: 好的,我的 UDEV 规则中有一个路径错误,因为在 ssh 上,我不在同一个用户中。我要结束话题了。
我发现我的 script/udev 规则中有一个路径错误。