如下所示,在/opt/backup下是备份目录,只需要保留最新的三份备份,在此之前的备份目录都要删除。

[root@syslog-ng ~]# cd /opt/backup/
[root@syslog-ng backup]# ls -l
total 68
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180626
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180627
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180628
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180629
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180630
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180631
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180701
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180702
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180703
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180704
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180705
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180706
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180707
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180708
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180709
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180710
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180711 [root@syslog-ng backup]# /bin/ls -l |grep "^d"
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180626
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180627
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180628
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180629
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180630
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180631
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180701
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180702
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180703
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180704
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180705
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180706
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180707
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180708
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180709
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180710
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180711 [root@syslog-ng backup]# /bin/ls -l |grep "^d"|awk '{print $9}'
20180626
20180627
20180628
20180629
20180630
20180631
20180701
20180702
20180703
20180704
20180705
20180706
20180707
20180708
20180709
20180710
20180711 [root@syslog-ng backup]# /bin/ls -l |grep "^d"|awk '{print $9}'|wc -l
17
[root@syslog-ng backup]# /usr/bin/expr 17 - 3
14

处理脚本如下

[root@syslog-ng backup]# cat /opt/del.sh
#!/bin/bash
cd /opt/backup
NUM1=$(/bin/ls -l |grep "^d"|awk '{print $9}'|wc -l)
NUM2=$(/usr/bin/expr $NUM1 - 3)
/bin/ls -l |grep "^d"|awk '{print $9}'|/bin/sed -n "1,$NUM2 p"|xargs rm -rf

授予脚本执行权限

[root@syslog-ng backup]# chmod 755 /opt/del.sh

执行脚本

[root@syslog-ng backup]# sh /opt/del.sh

执行脚本后,发现保留下来的备份目录就行最新的三份了

[root@syslog-ng backup]# ll
total 12
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180709
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180710
drwxr-xr-x. 2 root root 4096 Jul 11 14:48 20180711

保留最新N份备份目录脚本的更多相关文章

  1. 使用命令行备份指定文件夹并保留最新N份

    客户需要对网站进行定期备份,并保留最近30天的文件,编写后以下脚本,通过Windows的任务计划进行调度 对比手工和任务计划调度运行情况来看,手工运行中可直接调用RAR.exe和网络进行传输,但是任务 ...

  2. Linux Shell脚本,删除旧文件,保留最新的几个文件

    删除某一目录下文件,只保留最新的几个 #!/bin/bash #保留文件数 ReservedNum= FileDir=/home/dev/saas_test/testcases/report/html ...

  3. Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

    说明:  1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...

  4. windows server 定期备份数据库脚本

    将以下文件保存为.bat脚本,在计划任务中添加定时任务运行此脚本即可.脚本中的备份目录,数据库目录和压缩文件目录请自行修改. @echo off rem 当前路径切换到备份数据库目录 cd D:\wa ...

  5. 完整和增量备份MySQL脚本

    本文档采用mysqldump 对数据库进行备份,mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法 ...

  6. Mongodb之备份恢复脚本

    本分脚本: !/bin/bash #备份文件执行路径 which mongodump DUMP= #临时备份目录 OUT_DIR= #本分存放目录 TAR_DIR= #获取当前系统时间==> 2 ...

  7. mysql通过mysqldump实现备份,脚本编写

    每日三点同步mysql备份任务 crontab -e 0 3 * * * sh /home/shell/mysql_bakup.sh >> /dev/null 2>&1 my ...

  8. Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复

    定时备份 要求 为了能够备份和恢复,请确保你的系统上安装了Rsync yum install rsync -y 配置备份目标机器免密认证 执行ssh-keygen -t rsa 生成私钥和公钥 ssh ...

  9. Rehat一键安装mysql脚本和备份数据库脚本

    Rehat一键安装mysql脚本 ##说明:适用,Rehat 5 6 7 1.运行状态,运行成功输出mysql临时密码 2.代码如下 #!/bin/bash #获取系统信息 sudo cat /etc ...

随机推荐

  1. 修改sqlserver2008数据库的排序规则 (转)

    修改sqlserver2008数据库的排序规则 (转)      修改SQL server 2008服务器排序规则 SQL Server 2008安装好后,发现服务器排序规则不对,又不想重装SQL S ...

  2. 第三章 Hyper-V 2012 R2配置选项

    原书中的第二章 是介绍了下hyper-v的管理器和检查点的使用,导入导出虚拟机,所以我跳过了不高兴写,很简单.直接进入第三部分,介绍虚拟机的三个重要组成部分:CPU,内存,硬盘的配置选项. Hyper ...

  3. godaddy.com 都转到 www.dnspod.cn

    我们在godaddy上注册了域名,但因为godaddy对域名解析的诸多限制和缓慢. 所以必需把域名服务器更改为dnspod上,然后再在dnspod上做A记录,CNAME等设置都很方便.

  4. Python作业第一课

    零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义, ...

  5. January 25th, 2018 Week 04th Thursday

    What made something precious? Losing it and finding it. 一件东西怎样才会变得珍贵无比?先弄丢了它,然后又找到了. A short time ag ...

  6. January 10th, 2018 Week 02nd Wednesday

    No need to have a reason to love you. Anything can be a reason not to love you. 喜欢你,不需要什么理由:不喜欢你,什么都 ...

  7. java死锁示例及其发现方法

    在java多线程编程中很容易出现死锁,死锁就是多个线程相互之间永久性的等待对方释放锁,这和数据库多个会话之间的死锁类似.下面的代码示例了一个最简单的死锁的例子,线程1和线程2相互之间等待对方释放锁来取 ...

  8. scanf函数(初学者)

    scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中. 1.scanf函数的一般形式:scanf函数是一个标准的库函数,它的函数原型在头文件“stdio.h”中,与pr ...

  9. Sudoku(第二次作业)

    这里是github 工具清单: 编程语言:C++ 编程IDE:XCode 效能分析工具:XCode 源代码管理平台:Github PSP2.1 PSP2.1 Personal Software Pro ...

  10. CSS3渐变——线性渐变

    渐变背景一直以来在Web页面中都是一种常见的视觉元素.但一直以来,Web设计师都是通过图形软件设计这些渐变效果,然后以图片形式或者背景图片的形式运用到页面中.Web页面上实现的效果,仅从页面的视觉效果 ...