#!/bin/bash ############################ #保留最近N天的备份 #2019年6月16日11:32:59 ############################ #需求 #文件备份格式为date +%F/%H/%M #节假日不备份 #不管过几个节假日,始终保留最新N天的备份 ##############模拟备份 mkdir $(pwd)/test touch $(pwd)/test/`date -d "1 day ago" +%F-%H-%M`.tar.gz touch $(pwd)/test/`date -d "2 day ago" +%F-%H-%M`.tar.gz touch $(pwd)/test/`date -d "3 day ago" +%F-%H-%M`.tar.gz ##############保留最新两天的记录 ls -t $(pwd)/test/* | awk 'NR>2' | xargs rm -rf #注:ls -t是按照时间排序,加路径主要是为了后面awk过滤出来带路径,好绝对路径删除。NR指的是行号。 # ls -t $(pwd)/test/* | awk '{ print NR}' 最新的文件确定排在前面,保留N天的就删除大于N天的。