como rastrear a visão do comando df no caso de novo ponto de montagem

0

Meu alvo é verificar consistentemente se algum novo ponto de montagem foi adicionado, e eu preciso verificar isso pelo comando df

Portanto, o seguinte comando visualiza o df e, no caso de um novo ponto de montagem, podemos ver a alteração

 watchdf

mas eu pergunto se podemos rastrear a informação do df pelo script bash que irá imprimir "novo ponto de montagem foi adicionado", caso o novo ponto de montagem apareça no df é possível?

    
por maihabunash 06.10.2015 / 11:52

2 respostas

2

Observar a saída de df é uma má ideia, pois sua saída não pode ser processada de forma confiável e não inclui todos os sistemas de arquivos montados (a menos que você use a opção -a com a implementação do busybox).

No Linux ( util-linux 2.20 e acima), você pode usar findmnt -p para pesquisar alterações nos pontos de montagem.

Esse comando funciona fazendo um poll(events=POLLPRI) em um descritor de arquivo aberto somente leitura em /proc/self/mountinfo , de modo que ele relatará eventos (montar, desmontar) assim que eles acontecerem. Ele não detectará pontos de montagem sendo renomeados.

Observe que ele detecta apenas alterações no namespace de montagem atual (como assistir df também).

    
por 06.10.2015 / 12:17
0

Você pode usar um script como este:

x=""
while :; do
  df="$(awk '{print $1,$2}' /proc/mounts)" # only the first two fields are relevant
  if [ "$x" != "$df" ]; then # only diff the contents when something has changed
    diff <(echo "$df") <(echo "$x") \ # compare the two values
      --unchanged-line-format='' \
      --old-line-format='mounted: %L' \
      --new-line-format='unmounted: %L'
  fi
  x="$df"
  sleep 1 # can be increased
done

Dependendo das informações em /proc/mounts , o script faz um loop a cada 1 segundo e verifica se alguma coisa mudou. diff compara o antigo e o novo valor e formata a saída.

Quando o script é executado, a saída seria, por exemplo, semelhante a:

mounted: //srv/share /mountpoint
unmounted: /dev/sdb1 /media
    
por 06.10.2015 / 12:37