programacion - shell linux ejemplos
Shell script para saber si un sistema de archivos ya está montado (8)
Algo como esto, aunque sea hacker, debería hacer el truco:
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
Tengo un sistema de archivos tmpfs montado en un directorio en particular. Quiero escribir un script de shell para comprobar si el sistema de archivos tmpfs ya está montado en el directorio.
Compruebe / proc / monta. Si grep el nombre del sistema de archivos y la ruta que desea que se monte (tal vez incluso una línea específica con todas las opciones incluidas) puede saber si el sistema de archivos está montado.
if [ "`grep "tmpfs /lib/init/rw tmpfs rw,nosuid,mode=755 0 0" /proc/mounts`" != "" ]
then
echo Mounted.
else
echo Not mounted.
fi
Hay una herramienta específicamente para esto: punto de montaje (1)
if mountpoint -q "$directory" ; then
echo it is a mounted mountpoint
else
echo it is not a mounted mountpoint
fi
¡Y ni siquiera tienes que raspar las cuerdas para hacerlo!
Tenga en cuenta que encuentro esta herramienta en el paquete de initscripts de Debian. La disponibilidad en otros lugares no es algo que pueda comentar.
Podrías usar df
, prueba man df
.
df ''directory'' | awk ''{print $1, $6}''
te daré algo como
Filesystem Mounted
/dev/sda5 ''some_dir''
luego puede agregar un cheque si el directorio ''some_dir'' es el mismo que ''your_dir'', y el sistema de archivos es el mismo que el suyo.
Puede comprobar el tipo de sistema de archivos.
$ stat -f -c ''%T'' / xfs $ stat -f -c ''%T'' /dev/shm tmpfs
También puede verificar si un directorio es un punto de montaje comparando su dispositivo con el de su padre.
$ stat -c ''%D'' / 901 $ stat -c ''%D'' /home fe01 $ stat -c ''%D'' /home/$USER fe01
Sé que este hilo es antiguo, pero ¿por qué no usar simplemente df y grep para la ruta requerida al punto de montaje? es decir, así:
df /full/path | grep -q /full/path
grep devuelve true si está montado, false si no. Así que solo tenemos que probarlo así:
df /mnt/myUSBdisk | grep -q /mnt/myUSBdisk && echo "Mounted" || echo "Not mounted"
Pan comido...
mountpoint es mucho más elegante y se encuentra en sysvinit-tools CentOS 6 +++
if mount -l -t tmpfs | grep "on $directory "
then
echo "it''s mounted"
fi