我有一个 wifi 接入点,允许插入 USB 硬盘,任何共享同一 wifi 的计算机都可以访问该硬盘。我想知道是否有办法通过 shell 脚本测试那里是否插入了东西。
如果有办法检查哪个插入 USB 密钥或硬盘会令人高兴,但我的要求并没有那么多。
编辑
目标是在处理文件之前检查驱动器是否已打开。我想使用 samba 访问驱动器。IP 是192.168.0.1
。我可以获取驱动器的名称,但无论我插入哪个驱动器,IP 都是固定的。
笔记:我的最终目标是使用 shell 脚本上传该驱动器上的文件。我不介意你给我另一种方法来实现这一点:SSH、FTP、HTTP、莫尔斯电码……
答案1
如果不摆弄一番,你可能无法确定它是哪个驱动器。稍后会详细介绍。
首先,尝试安装设备。如果安装失败,则表示没有插入任何内容。显然,需要更改路径和选项。(必须以 root 身份运行,或使用 sudo)
mount -t cifs -o <options here> //192.168.0.1/share_name /mnt/whatever
if [[ $? = 1 ]]; then
echo "Drive not available."
exit 1;
fi
如果成功,继续将文件复制到 /mnt/whatever。
如果您想要知道插入了哪个驱动器,您可以做的一件简单的事情就是在 USB 密钥或驱动器的根目录中创建一个文件来识别它。例如,我有一个 Corsair USB 密钥,在密钥的顶级目录中创建一个名为“CORSAIR”的空文件。显然,您可以随意命名它。然后,在安装后,测试文件是否存在。您甚至可以在此时卸载它并将其安装到另一个目录中以供进一步使用。
if [[ -f /mnt/whatever/CORSAIR ]]; then
echo "CORSAIR USB key detected.."
# do some stuff
fi
if [[ -f /mnt/whatever/PERSONAL ]]; then
echo "Personal USB key detected..."
umount /mnt/whatever
mount -t cifs -o <options> //192.168.0.1/share_name /mnt/PERSONAL
fi
由于您正在挂载和卸载,因此您必须以 root 身份运行或使用“sudo mount”,它将提示输入密码。