Shell脚本自动删除指定大小以上的备份文件

以下是“Shell脚本自动删除指定大小以上的备份文件”的完整攻略。

简介

在日常维护中,需要保留一定数量的备份数据以便于恢复,但是随着时间的推移,备份的数量和容量都会逐渐增大,因此需要定期清理历史备份文件。本文将介绍如何使用Shell脚本自动删除指定大小以上的备份文件。

实现步骤

  1. 确认需要删除的备份文件夹路径和大小限制(即所有大小大于指定大小的备份文件将被删除)。
# 假设备份文件夹路径为 /var/backup,删除文件大小限制为 100M
BACKUP_PATH=/var/backup
MAX_SIZE=100     # 单位为M
  1. 创建Shell脚本文件并添加以下代码
#!/bin/bash

# 设置备份文件夹和文件大小阈值
BACKUP_PATH=/var/backup
MAX_SIZE=100     # 单位为M

# 遍历备份文件夹下的所有备份文件,并删除大小大于指定大小的文件
find ${BACKUP_PATH} -type f -size +${MAX_SIZE}M -delete
  1. 保存并关闭Shell脚本文件,例如保存为delete_old_backup.sh

  2. 授权Shell脚本文件执行权限

chmod +x delete_old_backup.sh
  1. 执行Shell脚本文件delete_old_backup.sh,即可自动删除指定大小以上的备份文件。
./delete_old_backup.sh

示例说明

示例1:删除5天前大小大于50M的备份文件

#!/bin/bash

# 设置备份文件夹、文件大小阈值和删除时间
BACKUP_PATH=/var/backup
MAX_SIZE=50     # 单位为M
DAYS=5

# 删除5天前大小大于50M的备份文件
find ${BACKUP_PATH} -type f -mtime +${DAYS} -size +${MAX_SIZE}M -delete

示例2:定时删除大小大于100M的备份文件

#!/bin/bash

# 设置备份文件夹和文件大小阈值
BACKUP_PATH=/var/backup
MAX_SIZE=100     # 单位为M

# 定时删除大小大于100M的备份文件
0 0 * * * find ${BACKUP_PATH} -type f -size +${MAX_SIZE}M -delete

上述示例1会删除5天前大小大于50M的备份文件,示例2则会每天定时删除大小大于100M的备份文件。根据自己情况,可以自行修改备份路径、大小限制和删除时间,实现自动删除指定大小以上的备份文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Shell脚本自动删除指定大小以上的备份文件 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Redhat/CentOS Linux 系统进入单用户模式

    Redhat/CentOS Linux 系统进入单用户模式 以 CentOS 7.9 和 Redhat 8.2 为例进行操作,因为CentOS是Redhat的发行版,所以同版本号界面和操作是一样的。 CentOS 7.9  开机在 grub 引导界面时,按下 e 键进入编辑模式:   找到 linux16 这一行,在行末添加 rd.break(注意这里是一整…

    Linux 2023年4月18日
    00
  • Linux_shell脚本_遍历文件夹下所有文件

    参考:lunar1983的专栏 实现:从给定目录树中grep出含制定字符串的行,并给出所在路径 代码如下所示: #!/bin/sh – if [ $# -ne 2 ] then echo “usage traverse <dir> <str>” exit fi { function ergodic(){ for file in ` l…

    Linux 2023年4月11日
    00
  • 关于Linux下C编译错误(警告)cast from ‘void*’ to ‘int’ loses precision

    char *ptr; //此后省略部分代码 if( (int)ptr==-1 ) //出错地方 那句话的意思是从 void* 到 int 的转换丢失精度,相信看到解释有些人就明白了, 此问题只会出现在X64位的Linux上,因为在64位的机器上指针占用8个字节,int 占用四个字节,所以才会出现这样的问题, 解决方法: (long)ptr == -1 就好了

    Linux 2023年4月15日
    00
  • Linux reset命令

    当使用Linux系统时,有时候我们需要重新初始化终端,以便清空所有设置并回到一致的状态。此时,可以使用reset命令。reset命令用于将终端恢复到初始状态,也可用来清楚区域屏幕和缓冲区域。 命令格式 reset [-ns] [-V] 命令参数 -n或–no-init:不要从文件/etc/termcap或$TERMCAP获取初始化字符串。 -s或–soft:…

    Linux 2023年3月28日
    00
  • Linux 6下安装编译安装Nginx的步骤

    下面是关于“Linux6下安装编译安装Nginx的步骤”的完整攻略: 步骤一:安装编译工具和相关依赖 首先,为了顺利编译和安装Nginx,需要安装一些所需的编译工具和相关依赖。 以CentOS 6为例,可以采用以下命令安装: yum install gcc gcc-c++ automake autoconf libtool make zlib zlib-de…

    Linux 2023年5月14日
    00
  • linux lnmp搭建及解释

    lnmp的搭建linux nginx mysql(mariaDB) php 安装mysql依赖:yum -y install cmake(cmake编译工具)yum -y install gcc gcc-c++yum -y install ncurses-devel安装mysql[root@web2]# useradd mysql[root@web2]# t…

    Linux 2023年4月12日
    00
  • [linux shell]sort使用经验

    1. 以tab键为分隔符的表示为: sort –t $’\t’ 如果不加$符号的话,会返回:sort: multi-character tab `\t’的错误。 2. 对中文进行排序, 需要加LC_ALL=C将locale设置成posix标准。因为有可能目前的设置可能导致中文排序不正常。 这是我的设置(修改前):locale

    Linux 2023年4月12日
    00
  • Linux上安装percona-xtrabackup-24(innobackupex工具)

    Centos: # wget https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm # rpm -ivh percona-release-0.1-4.noarch.rpm # yum -y –nogpgche…

    Linux 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部