特定のディレクトリにtmpfsファイルシステムをマウントしています。 tmpfsファイルシステムがすでにディレクトリにマウントされているかどうかを確認するシェルスクリプトを作成したいと思います。
ファイルシステムの種類を確認できます。
$ 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
これに特化したツールがあります:mountpoint(1)
if mountpoint -q "$directory" ; then
echo it is a mounted mountpoint
else
echo it is not a mounted mountpoint
fi
そして、あなたはそれをするためにひもをこする必要さえありません!
このツールはDebianのinitscriptsパッケージに含まれていることに注意してください。それが他の場所でどれほど利用可能であるかは、私がコメントできるものではありません。
このようなものは、ハック的ですが、トリックを行う必要があります:
FS_TO_CHECK="/dev" # For example... change this to suit your needs.
if grep -F " $FS_TO_CHECK " /proc/mounts > /dev/null; then
# Filesystem is mounted
else
# Filesystem is not mounted
fi
このスレッドが古いことは知っていますが、マウントポイントへの必要なパスにdfとgrepを使用しないのはなぜですか?つまり、このように:
df /full/path | grep -q /full/path
grepは、マウントされている場合はtrueを返し、マウントされていない場合はfalseを返します。したがって、次のようにテストする必要があります。
df /mnt/myUSBdisk | grep -q /mnt/myUSBdisk && echo "Mounted" || echo "Not mounted"
簡単ピーシー...
df
を使用できます。man df
を試してください。
df 'directory' | awk '{print $1, $6}'
次のようなsthを提供します:
Filesystem Mounted
/dev/sda5 'some_dir'
次に、ディレクトリ「some_dir」が「your_dir」と同じであり、ファイルシステムがあなたのものと同じであるかどうかのチェックを追加できます。
if mount -l -t tmpfs | grep "on $directory "
then
echo "it's mounted"
fi
/ proc/mountsを確認してください。ファイルシステム名とマウントするパス(すべてのオプションが含まれている特定の行でも)をgrepすると、ファイルシステムがマウントされているかどうかがわかります。
if [ "`grep "tmpfs /lib/init/rw tmpfs rw,nosuid,mode=755 0 0" /proc/mounts`" != "" ]
then
echo Mounted.
else
echo Not mounted.
fi