如何让脚本在 Linux 中卸载指定磁盘时运行?

How can I have a script that runs when a specified disk s unmounted in Linux?

我正在尝试编写一个脚本,当我 运行 它时,检查是否安装了指定的驱动器,如果是,那么它什么也不做,脚本继续,否则它安装磁盘.

它的伪代码是:

if dev/disksa1 is mounted at /media/server:
    print ""
else:
    mount dev/disk/sa1 at /media/server

我为实现这一目标所做的实际代码是。这是在另一个 post:

中推荐的
if grep -qs 'MinecraftServer' /media/<username>/MinecraftServer/MinecraftServer; then
    echo "Disk already mounted, server boot will continue"
else
     mount /dev/sda1 /media/kiancross/MinecraftServer
fi

虽然出于某种原因,无论它总是重新安装磁盘,即使它已经安装。

不太清楚为什么会这样,谁能给我指出正确的方向?

大多数 Linux 发行版(以及 mount(8) 命令)查找名为 /etc/fstab 的文件以获取有关应安装的文件系统的信息。在其中添加具有正确选项的条目将导致系统在启动时挂载文件系统。有关详细信息,请参阅 fstab(5) 手册页。

如果您想查看已安装的驱动器,该信息通常会在 /etc/mtab 中更新。我安装未安装驱动器的解决方案是:

if grep --quiet 'drive_name' /etc/mtab; then
   echo "already mounted"
else
   /bin/mount /path/to/mount/point
fi

当然,安装必须已经在 /etc/fstab 中列出,/bin/mount 才能以这种方式工作。

因此,根据您的具体情况,我建议:

if grep -qs 'MinecraftServer' /etc/mtab; then
    echo "Disk already mounted, server boot will continue"
else
     mount /dev/sda1 /media/kiancross/MinecraftServer
fi