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.