在 rsync-destination 上保留最小可用空间

在 rsync-destination 上保留最小可用空间

我使用rsync每晚的 cron 作业将两个文件夹备份到同一个目标磁盘:

rsync -avz /very/important/data /Backup/VID/
rsync -avz /other/stuff /Backup/tmp/

第一项作业备份了比第二项作业更重要的数据(例如邮箱与电影收藏),所以我想确保这项作业成功。而且第一项作业的数据量比第一项作业小得多。

现在,当磁盘已满时,我面临问题:

  • 周一晚上:第一个作业成功了,但第二个作业填满了磁盘并最终停止并显示“磁盘已满“消息。没关系(有点)。
  • 周二晚上:由于前一天晚上的备份磁盘仍然满了,所以此时已经第一的作业失败。现在这是坏的

所以我想知道如何限制第二个 rsync 作业的可用(目标)磁盘空间:如果我可以告诉第二个作业可用空间减少了(比如说)3GB,它就会提早退出并为第二天的重要作业留出空间。

第一个想法是在备份磁盘上创建一个大的临时文件(在第一项作业完成后,第二项作业开始之前),并在第二项作业完成后(下一轮之前)删除该文件。

现在我想避免这种情况,因为备份磁盘实际上是一个 NFS 挂载,并且只是为了保持空间可用而在该设备上创建 GB 的虚拟文件的速度相当慢。

客户端系统:

  • Debian/GNU Linux 8.2(杰西)
  • nfs 实用程序1:1.2.8-9
  • 核心3.16.0-4-amd64

我无法访问 NFS 服务器。

答案1

既然您提到使用 nfs,我认为使用 nfs 配额可能是最简单的解决方案。

编辑您的/etc/fstab以限制非重要数据挂载点的大小,如下所示:

<server>:</remote/export> /BACKUP/other/mnt auto rw,noauto,user,usrquota 0 0 关键是将usrquota位添加到安装选项

并按照此处的指南进行操作: https://en.wikibooks.org/wiki/LPI_Linux_Certification/Managing_Disk_Quota

如果这个简短的介绍还不够的话,还有很多关于如何做到这一点的指南。 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/System_Administration_Guide/ch-disk-quotas.html

相关内容