Сценарий оболочки, чтобы узнать, смонтирована ли файловая система - PullRequest
17 голосов
/ 18 ноября 2010

У меня есть файловая система tmpfs, смонтированная в определенном каталоге.Я хочу написать сценарий оболочки, чтобы проверить, смонтирована ли файловая система tmpfs в каталоге.

Ответы [ 8 ]

42 голосов
/ 18 ноября 2010

Специально для этого есть инструмент: точка монтирования (1)

if mountpoint -q "$directory" ; then
    echo it is a mounted mountpoint
else
    echo it is not a mounted mountpoint
fi

И вам даже не нужно скрести струны, чтобы сделать это!

Обратите внимание, что я нахожу этот инструмент в пакете initscripts в Debian. Насколько это доступно в другом месте, я не могу комментировать.

4 голосов
/ 19 ноября 2010

Вы можете проверить тип файловой системы.

$ stat -f -c '%T' /
xfs
$ stat -f -c '%T' /dev/shm
tmpfs

Вы также можете проверить, является ли каталог точкой монтирования, сравнив его устройство с родительским.

$ stat -c '%D' /
901
$ stat -c '%D' /home
fe01
$ stat -c '%D' /home/$USER
fe01
3 голосов
/ 18 ноября 2010

Что-то вроде этого, хотя и хакерское, должно сработать:

FS_TO_CHECK="/dev" # For example... change this to suit your needs.

if cat /proc/mounts | grep -F " $FS_TO_CHECK " > /dev/null; then
    # Filesystem is mounted
else
    # Filesystem is not mounted
fi
2 голосов
/ 21 июля 2013

Я знаю, что этот поток старый, но почему бы просто не использовать df и grep для требуемого пути к точке монтирования? то есть как это:

df /full/path | grep -q /full/path

grep возвращает true если установлено, false если нет. Нам просто нужно проверить это так:

df /mnt/myUSBdisk | grep -q /mnt/myUSBdisk && echo "Mounted" || echo "Not mounted"

Легкий горох ...

1 голос
/ 18 ноября 2010

Вы можете использовать df, попробуйте man df.

df 'directory' | awk '{print $1, $6}'

, что даст вам что-то вроде:

Filesystem Mounted
/dev/sda5  'some_dir'

, затем вы можете добавить проверку, если каталог 'some_dir'совпадает с' your_dir ', а файловая система совпадает с вашей.

0 голосов
/ 26 июля 2016

точка монтирования гораздо более элегантна и находится в sysvinit-tools CentOS 6 +++

0 голосов
/ 19 ноября 2010
if mount -l -t tmpfs | grep "on $directory "
then
    echo "it's mounted"
fi
0 голосов
/ 18 ноября 2010

Проверить / proc / mounts. Если вы выполняете поиск по имени файловой системы и пути, к которому хотите ее подключить (возможно, даже по определенной строке со всеми включенными параметрами), вы можете определить, смонтирована ли файловая система.

if [ "`grep "tmpfs /lib/init/rw tmpfs rw,nosuid,mode=755 0 0" /proc/mounts`" != "" ]
then
  echo Mounted.
else
  echo Not mounted.
fi
...