#!/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天的。