Eu gostaria de um método para capturar o uso do disco de uma partição específica, usando o diretório em que a partição está montada. A saída deve ser apenas um número inteiro sem preenchimento ou símbolos a seguir, como eu gostaria de salvá-lo em uma variável.
Eu usei df --output=pcent /mount/point
, mas preciso aparar a saída, pois ela tem um cabeçalho desnecessário, preenchimento de espaço único antes do valor e um símbolo de% após o valor da seguinte forma:
Use%
83%
Nesse caso, a saída que eu gostaria seria simplesmente 83
. Não conheço nenhuma desvantagem em usar a saída de df
, mas estou feliz em aceitar outros métodos que não dependem dela.
command-line
bash
scripts
disk-usage
Arronical
fonte
fonte
tr
, estava colocando minha cabeça em uma confusão com idéias sed e awk.Respostas:
Eu usaria ...
Não tenho certeza se o sed é mais rápido, mas não consigo me lembrar dos valores do sed.
fonte
time
para testar é tão rápido quanto sed.tr
é mais fácil ler do quesed
.Aqui está a solução awk:
Basicamente, o que acontece aqui é que tratamos o caractere '%' como separador de campo (delimitador de coluna) e imprimimos a primeira coluna $ 1 apenas quando o número de registros for igual a dois (a
NR==2
parte)Se quiséssemos usar
bash
ferramentas -only, poderíamos fazer algo assim:E por diversão, alternativa
sed
via grupo de captura e-r
para regex estendido:fonte
sed
solução1d
excluir a primeira linha;
separar comandoss/^ //
remover um espaço do início das linhass/%//
remover%
sinalfonte
Você pode canalizar para um
grep
que apenas extraia dígitos:Veja ao vivo:
fonte
Encontrei um servidor em que --output = pcent ainda não estava implementado, então usei a saída normal, filtrada por coluna, seguida pelo regex:
df /mount/point | awk '{print $5}' | tr -dc '0-9'
fonte
Solução em duas etapas do Bash
Sendo um pouco fã do bash (Borne Again SHell) no ano passado, pensei em propor uma solução para usá-lo.
df
saída para variávelDF_PCT
.DF_PCT
e o exibe na tela.5
nesse caso) ser gerada.fonte
Aqui está outra solução:
fonte