我有一个目录,从现在开始,我想每天记录它的大小。也就是说,在一天中的某个时间,每天,我想计算该目录的大小,并将其与日期一起附加到某个文件中。
笔记:目录的大小是指所有内容的大小,递归地。
推荐的方法是什么?
答案1
你可以运行一些东西du
来自 cron 作业。使用 GNU 工具,du -sb dir/
可以递归地给出目录及其中所有文件的字节大小(加上目录名称,但我们可以删除它)。您可以通过 获取日期date
。例如
$ printf "$(date +"%F %T") $(du -sb /tmp)\n"
2018-07-03 15:25:57 24246930 /tmp
然后将其放入 cron 作业并将输出定向到文件。 A定时任务每天 06:00 运行的条目可能是这样的(当然,我/tmp
在这里只是作为示例):
0 6 * * * printf "$(date +"\%F \%T") $(du -sb /tmp)\n" >> /tmp/tmp-size.log
百分号需要转义cron
。
您可以du -sk
用于千字节,或du -sh
用于“人类可读”的自动缩放输出。所接受的选项du
在另一个系统上可能有所不同。
du ... | sed -e 's/[[:blank:]].*//'
如果您想删除du
打印的路径名,请使用类似的内容。