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

时间:2015-01-25 18:56:21

标签: 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/<username>/MinecraftServer/MinecraftServer; then
    echo "Disk already mounted, server boot will continue"
else
     mount /dev/sda1 /media/kiancross/MinecraftServer
fi

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

如果您要查看已安装的驱动器,通常会在/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