如何编写 bash 脚本来检测已安装的 USB 驱动器?

如何编写 bash 脚本来检测已安装的 USB 驱动器?

我正在从 cron 触发一个脚本。我希望它仅在安装了名为“data_3”的 USB 磁盘时运行 rsync,否则不运行。

如何编写 bash 脚本来检测已安装的 USB 驱动器?

我当前的伪代码:

#!/bin/sh  
if ( mount | grep /media/data_3 )  
  rsync ...  
else  
  echo "Failure"

答案1

关闭。

if mount | grep -q ' on /media/data_3 '; then

不要忘记fi最后的(help if了解详情)。

答案2

您也可以用另一种方法 - 通过在第一次插入 USB 时发出命令来找出磁盘的 uuid(目的是找出 uuid)通过使用 vol_id

NAME vol_id - 探测文件系统类型并读取标签和 uuid

摘要 vol_id [--export] [--type] [--label] [--label-raw] [--uuid] [--skip-raid] [--probe-all] [--offset=bytes] [--debug] [--help] [device]

描述 vol_id 通常从 udev 规则中调用,为 udev 提供卷的文件系统类型、标签和 uuid。它支持大多数常见的文件系统格式,并检测各种 raid 设置,以防止将 raid 成员识别为具有文件系统的卷。

选项--export 以键/值格式打印所有值以将它们导入到环境中。

   --type
       Print the filesystem type.

   --label
       Print the safe version of volume label suitable for use as

文件名。

   --label-raw
       Print the raw volume label.

   --uuid
       Print the uuid of a volume.

   --skip-raid
       Skip detection of raid metadata.

   --probe-all
       Probe for all types and print all matches.

   --offset=bytes
       Start probing at the given offset, instead of the beginning of

卷。偏移量值以字节为单位指定。

   --debug
       Print debug messages to stderr.

   --help
       Print usage.

环境 UDEV_LOG 设置系统日志优先级。

退出状态 vol_id 仅在请求的值不为空时才返回成功。所有尾随空格都将被删除,空格将被替换为下划线,斜线将被忽略。

然后一旦您获得该磁盘的值,就需要检查 vol_id......

相关内容