计算文件夹大小排除文件硬链接
Calculate foldersize exlude files hardlink
我正在使用带有 rsync 的 bash 脚本来创建每日和每周备份。简而言之,它是如何工作的:
- 脚本设置了天数和周数的变量。
- 当日文件夹被清空:
rm -rf /path/to/$currentday/*
- 前一天的内容被复制到当天(硬链接):
cp -ral /path/to/$previousday/* /path/to/$currentday/
- 然后脚本会同步所做的更改:
rsync -tru --progress /path/to/SOURCE/* /path/to/$currentday/
这正在通过 WAN 从一个存储设备拉到另一个。由于公司在发展,我们需要监控每次脚本运行时实际上有多少数据通过 WAN 发送。
有没有办法让我计算 $currentday
文件夹并排除未更改的文件(仍然是硬链接)?
或者在脚本中添加一行来记录正在发送的文件?
我一直在网上搜索,但不幸的是没有找到任何有用的东西,我尝试的一切都与文件夹的总大小有关,即 2TB。
有没有人愿意和我分享这个?
我观察到 du
能够只计算一次硬链接的大小。测试此步骤:
mkdir 1 2
cd 1
dd if=/dev/zero of=f1 bs=1024 count=1024
dd if=/dev/zero of=f2 bs=1024 count=2048
cd ../2
ln ../1/f1
cp ../1/f2 .
cd ..
du -shc 1 2
du -shc 2 1
您会看到第二个文件夹没有考虑以前使用的硬链接的大小。也许这种方法有些帮助。
我正在使用带有 rsync 的 bash 脚本来创建每日和每周备份。简而言之,它是如何工作的:
- 脚本设置了天数和周数的变量。
- 当日文件夹被清空:
rm -rf /path/to/$currentday/*
- 前一天的内容被复制到当天(硬链接):
cp -ral /path/to/$previousday/* /path/to/$currentday/
- 然后脚本会同步所做的更改:
rsync -tru --progress /path/to/SOURCE/* /path/to/$currentday/
这正在通过 WAN 从一个存储设备拉到另一个。由于公司在发展,我们需要监控每次脚本运行时实际上有多少数据通过 WAN 发送。
有没有办法让我计算 $currentday
文件夹并排除未更改的文件(仍然是硬链接)?
或者在脚本中添加一行来记录正在发送的文件?
我一直在网上搜索,但不幸的是没有找到任何有用的东西,我尝试的一切都与文件夹的总大小有关,即 2TB。
有没有人愿意和我分享这个?
我观察到 du
能够只计算一次硬链接的大小。测试此步骤:
mkdir 1 2
cd 1
dd if=/dev/zero of=f1 bs=1024 count=1024
dd if=/dev/zero of=f2 bs=1024 count=2048
cd ../2
ln ../1/f1
cp ../1/f2 .
cd ..
du -shc 1 2
du -shc 2 1
您会看到第二个文件夹没有考虑以前使用的硬链接的大小。也许这种方法有些帮助。