如何让脚本在 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
我正在尝试编写一个脚本,当我 运行 它时,检查是否安装了指定的驱动器,如果是,那么它什么也不做,脚本继续,否则它安装磁盘.
它的伪代码是:
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