如何配置 Linux 自动备份定时任务的存储容量回收

浅涛吖_8596

浅涛吖_8596

2026-07-04

580人浏览

原创

linux备份需主动配置回收策略,核心是在写入新备份前清理旧备份或限制总空间:一是用borgbackup等工具自带轮转机制;二是rsync配合时间戳目录与find清理;三是定时任务结合磁盘空间判断自动删 oldest;四是通过文件系统配额硬性限制。

如何配置 linux 自动备份定时任务的存储容量回收

Linux 自动备份定时任务本身不带“回收”逻辑,存储容量回收需要你主动配置策略。核心思路是:让备份脚本或定时任务在写入新备份前,先清理旧备份,或限制总占用空间。常见做法分三类,按实用性和可控性推荐:

用 backup 工具自带的轮转机制(最省心)

很多成熟备份工具内置保留策略,比如 rsync 配合 --delete + 时间戳目录、borgbackup、restic 或 duplicity。

  • borgbackup 示例(支持压缩、去重、自动过期)

    # 每天备份,只保留最近7天、每周1个、每年1个
    borg prune --keep-daily=7 --keep-weekly=4 --keep-yearly=1 /path/to/repo

    运行后自动删除超出策略的归档,释放空间。

  • rsync + 时间戳目录 + 清理脚本
    备份到带日期的子目录(如 backup_2026-06-18),再用 find 删除早于 N 天的目录:

    find /backup -maxdepth 1 -type d -name 'backup_*' -mtime +30 -exec rm -rf {} +

用定时任务配合磁盘空间判断(通用灵活)

适合自定义脚本备份(如 tar + gzip)。关键是在备份前检查目标目录大小,超限时先清理。

#!/bin/bash
BACKUP_DIR="/backup"
MAX_SIZE="50G"  # 总容量上限

# 转换为字节数便于比较
MAX_BYTES=$(numfmt --from=iec "$MAX_SIZE")

# 当前已用大小(不含子目录中的 .Trash-* 等隐藏回收站)
USED=$(du -sb "$BACKUP_DIR" | cut -f1)

if [ "$USED" -gt "$MAX_BYTES" ]; then
  # 按修改时间排序,删最老的备份(假设每个备份是独立目录或 tar 文件)
  find "$BACKUP_DIR" -type f \( -name "*.tar.gz" -o -name "*.tar.xz" \) -printf '%T@ %p\n' \
    | sort -n | head -n 1 | cut -d' ' -f2- | xargs -r rm -f
fi

# 执行新备份(例如)
tar -czf "$BACKUP_DIR/backup_$(date +%F_%H%M).tar.gz" /home/user/data

然后加进 crontab:

CMIC Skill Scanner (Linux ARM64)
CMIC Skill Scanner (Linux ARM64)

使用 auto、native 或 external 引擎审计待安装的 skill 包或归档,并可选启用 LLM 语义分析。

下载
# 每天凌晨2点执行
0 2 * * * /usr/local/bin/backup_with_cleanup.sh

用文件系统配额或挂载限制(治本但需权限)

如果备份统一存放在某个分区(如 /backup 单独挂载),可直接限制该分区的用户/组写入总量,避免撑爆磁盘。

  • 对 ext4 分区启用用户配额:

    # 编辑 /etc/fstab,给 /backup 行加上 usrquota
    /dev/sdb1 /backup ext4 defaults,usrquota 0 2
    sudo mount -o remount /backup
    sudo quotacheck -cug /backup
    sudo quotaon /backup
    sudo edquota -u backupuser  # 设置 blocks 软硬限制(如 100GB 硬限)
  • 对 XFS 分区更简洁:

    sudo xfs_quota -x -c 'limit -b hard=100g backupuser' /backup

这样当备份写入超过限额时,tar 或 cp 会报错 No space left on device,可配合脚本捕获错误并告警。

不复杂但容易忽略的是:别只盯“备份文件数量”,要监控实际磁盘占用——压缩率变化、日志膨胀、临时文件残留都可能让策略失效。建议搭配 du -sh /backup 和邮件通知,形成闭环。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3790

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3273

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2393

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5730

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5382

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3193

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2685

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2899

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习