我目前正在做一个项目,需要一个文件被自动复制到安装的USB棒。 基于我在互联网上的研究,我相信这是可行的使用udev规则。 所以,当USB插入我的RPi2时,udev规则将执行一个python脚本,允许将文件复制到USB棒。
问题是,我也听说脚本会在RPi挂载USB之前执行,这意味着文件不会被复制。 有针对这个的解决方法吗? python脚本执行时,我内部复制文件(在RPi本身不是USB),它只是不工作,当我试图将其复制到USB。
以下是我的代码:
Udev统治
KERNEL=="sd*1", ACTION=="add", RUN=="/home/pi/datalogger/autocopy.sh"
Shell脚本
cd / cd /home/pi/datalogger sudo /usr/bin/python autocopy.py cd / exit
Python脚本
import shutil import datetime # File to be copied source = "/home/pi/copied.txt" # USB name must be changed to 'USB1' in order for auto copy to work destination = "/media/pi/USB1/datalogger_backup_%s.txt" % datetime.datetime.now().date() try: # Copy file to destination shutil.copy2(source, destination) # Eg source and destination is the same location except shutil.Error as e: print("Error: %s" % e) # Eg source or destination does not exist except IOError as e: print("Error: %s" % e.strerror)
问题 :由于USB尚未安装,因此目的地不可用
将以下内容添加到您的script
以验证mount
状态:
mount >> /tmp/mount.log
阅读这个自动安装 – usb-storage /
也许你可以适应你的需求。