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

如何让脚本在Linux中卸载指定磁盘时运行?,linux,bash,ubuntu,Linux,Bash,Ubuntu,我试图编写一个脚本,当我运行它时,检查指定的驱动器是否已装入,如果已装入,则它不执行任何操作,脚本将继续,否则它将装入磁盘 它的伪代码是: if dev/disksa1 is mounted at /media/server: print "" else: mount dev/disk/sa1 at /media/server 我为尝试实现这一点所做的实际代码是。另一篇文章对此提出了建议: if grep -qs 'MinecraftServer' /media/<use

我试图编写一个脚本,当我运行它时,检查指定的驱动器是否已装入,如果已装入,则它不执行任何操作,脚本将继续,否则它将装入磁盘

它的伪代码是:

if dev/disksa1 is mounted at /media/server:
    print ""
else:
    mount dev/disk/sa1 at /media/server
我为尝试实现这一点所做的实际代码是。另一篇文章对此提出了建议:

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
如果grep-qs'MinecraftServer'/media//MinecraftServer/MinecraftServer;然后
echo“磁盘已装入,服务器引导将继续”
其他的
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

你不只是在
/etc/fstab
中添加条目,有什么特别的原因吗?@IgnacioVazquez Abrams,因为我不知道这是可能的,也不知道这是存在的。你能给我一个解释怎么做的答案吗?所以如果我把正确的代码放在那个文件里,它会自动将硬盘安装到我选择的位置吗?如果是这样,我在哪里可以找到这样做的代码,或者您可以解释如何编写它?检查现有条目,并阅读
fstab(5)
手册页了解详细信息。在尽力遵循格式后,我提出了以下建议:
/dev/sdc1/media/kiancross/MinecraftServer/ext4 auto 0
。但当我重新启动时,它仍然没有挂载。你知道为什么吗?设备节点不正确,我的愚蠢。我最近换了两个硬盘,所以在看名字的时候感到很困惑。不过,这现在起作用了。非常感谢。