Tengo un sistema de archivos tmpfs montado en un directorio en particular. Quiero escribir un script de shell para verificar si el sistema de archivos tmpfs ya está montado en el directorio.Script de shell para saber si un sistema de archivos ya está montado
Respuesta
Puede verificar el tipo de sistema de archivos.
$ stat -f -c '%T'/ xfs $ stat -f -c '%T' /dev/shm tmpfs
También puede comprobar 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
Puede usar df
, intente man df
.
df 'directory' | awk '{print $1, $6}'
le dará el STH gusta:
Filesystem Mounted
/dev/sda5 'some_dir'
A continuación, puede añadir un cheque si el directorio 'some_dir' es igual a 'your_dir', y el sistema de ficheros es igual que la suya.
Algo como esto, mientras hacker, debe 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
Verificar/proc/mounts. Si grep en el nombre del sistema de archivos y la ruta que desea montar (tal vez incluso una línea específica con todas las opciones incluidas) puede decir 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
Un virtual -1 para usar palos de fondo en una ubicación no trivial. – Sorpigal
'if grep ...' - tampoco necesita paréntesis. –
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 que ni siquiera tiene que raspar cuerdas para hacerlo!
Tenga en cuenta que esta herramienta se encuentra en el paquete initscripts de Debian. Qué tan disponible está en otra parte no es algo que pueda comentar.
Veo que mountpoint es parte del paquete sys-apps/util-linux de Gentoo Linux junto con más, mount, umount, dmesg y un montón de otras herramientas del sistema. Yo diría que esta es la solución más limpia. – cvolny
@cvolny: Resulta que 'mountpoint' es parte de util-linux (específicamente la parte sys-utils) y probablemente esté disponible de una forma u otra en la mayoría de las distribuciones de Linux. Sin embargo, no forma parte de GNU y probablemente no esté disponible en sistemas que no sean Linux. – Sorpigal
Parece que viene con RHEL 7.1 (ok, he instalado algunas cosas aquí.Así que no puedo estar seguro de eso) –
if mount -l -t tmpfs | grep "on $directory "
then
echo "it's mounted"
fi
Sé que este hilo es viejo, pero ¿por qué no simplemente usar df y grep para la ruta requerida al punto de montaje? es decir:
df /full/path | grep -q /full/path
grep devuelve verdadero si está montado, falso si no. Así que sólo tenemos que probarlo de esta forma:
df /mnt/myUSBdisk | grep -q /mnt/myUSBdisk && echo "Mounted" || echo "Not mounted"
Peasy fácil ...
Decidí votar esta vez porque aunque mountpoint sería más fácil para la pregunta, esta respuesta es más flexible. Por ejemplo, algunas distribuciones de Linux montan tmpfs de memoria compartida en/tmp, mientras que otros utilizan/dev/shm o ambos. Esta respuesta hace que sea fácil darse cuenta de que puede decir si/tmp es memoria compartida o no de la misma manera: 'df/tmp | grep -q tmpfs && echo "Memoria compartida" || echo "No memoria compartida" O, más al punto 'df/tmp | grep -q tmpfs && tmp =/tmp || tmp =/dev/shm' –
punto de montaje es mucho más elegante y se encuentra en sysvinit-tools CentOS 6 +++
- 1. RSync sólo si el sistema de archivos está montado
- 2. Mejor forma POSIX para determinar si un sistema de archivos está montado solo lectura
- 3. ¿Cómo puedo saber si un archivo está en un sistema de archivos remoto con Perl?
- 4. Cómo saber (en sh) si un directorio está montado a través de NFS
- 5. ¿Cómo saber si un archivo está "almacenada en la caché del sistema de archivos"
- 6. instantánea de LVM del sistema de archivos montado
- 7. Evento de carga de Javascript: ¿cómo saber si el script ya está cargado?
- 8. Bash Script: desmonta un dispositivo, pero no falla si no está montado.
- 9. Python PySerial.¿Cómo saber si un puerto ya está abierto?
- 10. cómo saber si un elemento ya está presionado jquery
- 11. ¿Cómo saber si una cadena no está definida en un script bash shell?
- 12. cómo usar un script de shell para supervisar un programa?
- 13. Compruebe si el sistema de archivos Android está encriptado
- 14. compruebe si la variable de entorno ya está configurada
- 15. Detectar cuando un volumen está montado en OS X
- 16. ¿Cómo saber si ya se estableció un parámetro de salida?
- 17. de archivos por lotes para comprobar si un servicio del sistema se está ejecutando
- 18. Cómo saber si un actor está inactivo
- 19. Getopt multiplataforma para un script de shell
- 20. ¿Cómo saber si una ventana con un título dado ya está abierta en Tk?
- 21. Shell script: Asegúrese de que la secuencia de comandos no se ejecuta si ya se está ejecutando
- 22. ¿Cómo puedo determinar si un script de shell se está ejecutando con permisos de raíz?
- 23. Cómo determino si un directorio es un punto de montaje NFS montado en shellscript
- 24. Cómo incluir archivos en un script de shell bash
- 25. En Python, sin usar el sistema de archivos/proc, ¿cómo puedo saber si se está ejecutando un PID determinado?
- 26. ¿Cómo hacer un script de shell global?
- 27. Incluir jQuery, si no está incluido ya
- 28. Creación de archivos con algún contenido con script de shell
- 29. ¿Cómo puedo saber si mi script de Perl se está ejecutando en Windows?
- 30. ¿Cómo saber si un navegador está en modo "peculiar"?
Lo cierto es que ... – cdhowie