Coreutils são adequados para esse tipo de coisa. Aqui está uma solução rápida que também salvará as datas e horas.
$ echo -e "$(date)\t$(df | awk '$1 == "/dev/sda1" {print $2}')" > df_1
<wait a while>
$ echo -e "$(date)\t$(df | awk '$1 == "/dev/sda1" {print $2}')" > df_2
$ echo "$(( $(awk '{print $2}' FS='\t' df_2) - $(awk '{print $2}' FS='\t' df_1) )) K increase from $(awk '{print $1}' FS='\t' df_1) to $(awk '{print $1}' FS='\t' df_2)"
12 K increase from Wed Nov 20 21:22:07 EST 2013 to Wed Nov 20 21:23:13 EST 2013
Não tenho certeza se você precisa disso, mas para explicar o que ele faz:
- Primeiramente, salve a data e a hora atuais (
date
) e o espaço em disco "usado" (awk '$1 == "/dev/sda1" {print $2}'
) no arquivodf_1
. Pode ser necessário substituir seu sistema de arquivos específico em vez de/dev/sda1
. Usedf
sozinho para obter uma lista. - Em segundo lugar, repita mais tarde.
- Por fim, imprima a diferença entre o espaço em disco "usado"
$((...))
, que foi armazenado no primeiro campo de cada arquivo, e imprima as datas (do segundo campo).