Udev规则和脚本问题

时间:2015-05-21 14:31:15

标签: shell usb 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密钥,但后来我的脚本不起作用,我真的不明白为什么。有人可以向我解释一下吗? THX

编辑1: 当我在终端中运行我的脚本时,执行

./ScriptCopy

它有效!所以我必须在我的udev规则中遇到问题。

编辑2: 我发现了一些非常奇怪的东西(至少,我完全不理解),如果我在我的香蕉pi上使用GUI(XFCE)时插入USB密钥,我的规则就有效。但我正在使用ssh,所以通常我不打开GUI。我想做的是,用ssh运行一些命令,触发我的python脚本然后每两天用usb键获取一次数据。但是当我插入我的USB时,虽然香蕉pi不在GUI上(当我使用ssh从另一台计算机触发我的脚本时),它不会将数据传输到我的usb密钥。我不知道这是否可以理解。

编辑3: 好吧我的UDEV规则中有路径错误,因为在ssh上,我不在同一个用户中。我正在结束这个话题。

1 个答案:

答案 0 :(得分:0)

我发现我的脚本/ udev规则中存在路径错误。