如果目标磁盘已满,如何强制 rsync 停止?

如果目标磁盘已满,如何强制 rsync 停止?

我正在使用 rsync(centos 上的版本 3.1.0)执行一些备份任务。我开发了一个软件来监控我的 rsync 进程,以使备份配置符合我的业务逻辑。

我的软件启动一些 rsync 进程,并解析 rsync 的输出以发送通知。

我遇到了一些奇怪的事情。

我的目标磁盘已满。我的软件使用以下命令在该磁盘上启动 rsync 备份:

rsync -irlpt --no-perms --stats /src /media/dst/

/media/dst 是安装在 fuseblck(NTFS)中的外部 USB3 硬盘。

/src是一个包含50G字节的图片、电影和一些文本文件的文件夹。

因为这个磁盘已满,所以我希望 rsync 快速退出并返回错误。

但是,rsync 过程需要很长时间。(我在 10 小时后手动停止了它)当我停止它时,我可以读取很多类似这样的跟踪:

rsync: mkstemp "/media/dst/.20160518-130315-underwaterposition-VI_GAPS.pos.DIksdT" failed: No space left on device (28)

对于我来说,此消息是正常的,因为设备上没有剩余空间。

我的问题是:

为什么 rsync 在检测到目标设备上没有剩余空间时不会立即停止?

有没有办法强制这种行为?

相关内容