我正在尝试编写一个脚本,当我运行它时,检查是否安装了指定的驱动器,如果是,则它什么也不做,脚本继续运行,否则它会挂载磁盘。
它的伪代码是:
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
出于某种原因,无论它总是重新安装磁盘,即使它已经安装了。
不太清楚为什么会这样,有人能指出我正确的方向吗?
答案 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