Você pode executar algo du
a partir de um cron job. Com as ferramentas GNU, du -sb dir/
lhe daria o tamanho em bytes do diretório e todos os arquivos dentro dele, recursivamente (mais o nome do diretório, mas podemos removê-lo). E você pode obter a data com date
. Por exemplo,
$ printf "$(date +"%F %T") $(du -sb /tmp)\n"
2018-07-03 15:25:57 24246930 /tmp
Em seguida, coloque isso em uma tarefa cron e direcione a saída para um arquivo. Uma entrada crontab para ser executada às 06:00 todos os dias poderia ser algo assim (de Claro, estou usando apenas /tmp
aqui como apenas um exemplo):
0 6 * * * printf "$(date +"\%F \%T") $(du -sb /tmp)\n" >> /tmp/tmp-size.log
Os sinais de porcentagem precisam ser ignorados por cron
.
Você pode usar du -sk
para kilobytes ou du -sh
para saída em escala automática "legível". As opções aceitas por du
podem ser diferentes em outro sistema.
Use algo como du ... | sed -e 's/[[:blank:]].*//'
, se quiser remover o nome do caminho que du
imprime.