Comparando os pontos de montagem montados com fstab

0

Eu peguei o script de exemplo, abaixo, fora da rede para verificar e validar os pontos de montagem do sistema que já estão ativos e em execução.

O problema: Eu quero comparar os pontos de montagem montados existentes que não estão comentados no /etc/fstab e destacando-os se eles estiverem ligados.

Além disso, gostaria de saber se existe alguma solução alternativa!

#!/bin/bash
while read ip;
do
    echo "connecting to $ip";
    ssh root@$ip "until mount | grep -w \"/mnt/data\" >/dev/null;
     do echo mounting \"/mnt/data\"; mount \"/mnt/data\"; sleep 1; done && 
     echo Mounted on $ip"
done < ips.txt
    
por JackyBoi 13.09.2018 / 17:18

2 respostas

0

Isso parece fazer o truque:

#!/bin/bash
mountpoints=( $(awk '$1 !~ /^#/ && $2 ~ /^[/]/ {print $2}' /etc/fstab) )
for mount in ${mountpoints[@]}; do
   if ! findmnt "$mount" &> /dev/null; then
      echo "$mount is declared in fstab but not mounted"
   fi
done
    
por 13.09.2018 / 17:50
0

Roubando emprestando awk do DopeGhoti, você pode usar comm para isso:

Sistemas de arquivos montados mas não em / etc / fstab:

comm -23 <(mount|awk '{print $3}'|sort) <(awk '$1 !~ /^#/ && $2 ~ /^[/]/ {print $2}' /etc/fstab|sort)

Sistemas de arquivos que estão em / etc / fstab mas não montados:

comm -13 <(mount|awk '{print $3}'|sort) <(awk '$1 !~ /^#/ && $2 ~ /^[/]/ {print $2}' /etc/fstab|sort)
    
por 13.09.2018 / 18:41