插入USB时记录唯一标识符,格式化为FAT32并复制文件。Bash或Python
我想做的事情是:
- 插入USB闪存驱动器。
- 挂载它。
- 把唯一的识别字符串记录到一个文件里。
- 把驱动器格式化为FAT32。
- 把一个文本文件复制到驱动器上。
- 卸载它。
- 拔掉驱动器。
重复30次。
情况是这样的,我买了30个USB驱动器。我需要格式化每一个,以确保它们是干净的,我还需要从每个设备获取唯一的字符串。我需要把同一个文本文件放到每个驱动器上。
我不太擅长写脚本,但能读懂和跟着bash和python的代码走。
任何建议都很感谢。
编辑
谢谢大家的回复。
这是我目前在Windows上做的事情。
我使用了来自nirsoft.net的USBDeview,选择选项 > 高级选项 > “插入USB设备时执行以下命令”,然后使用了这个命令“python getserial.py %serial_number%”。
这个getserial.py脚本会把从USBDeview传递过来的%serial_number%放到一个文本文件里,然后把一个文件复制到USB设备上。
import sys
import shutil
sourceFile = "C:\\^READ ME.txt"
destinationFile = "E:\\^READ ME.txt"
f = open('serials.txt', 'a')
f.write(sys.argv[1] + '\n')
f.close()
from time import sleep
sleep(3)
shutil.copyfile(sourceFile, destinationFile)
我仍然希望能有一个完整的脚本来完成这个,但我觉得目前我的能力还不够。
1 个回答
2
为了自动检测插入的USB闪存驱动器,你可以使用autofs这个工具。不过,它不能在设备插入时运行脚本,否则其他步骤就能很简单地完成了。
所以,你需要检测autofs是否挂载了新的闪存驱动器。可以考虑使用crontab,定期检查是否有磁盘被挂载,如果有的话,就可以执行你的步骤。唯一需要注意的是,如何判断你是否已经处理过这个挂载的磁盘(也就是说,这个磁盘是新的还是已经处理过的)。
为了找到UUID(唯一标识符),你可以查看一下ls /dev/disk/by-uuid
或者blkid
,然后用它们的输出结果来获取UUID。格式化你的驱动器可以使用类似mkfs -t vfat /dev/<你的USB驱动器>
的命令。
希望这些提示能帮助你解决问题。