保留最新N份备份目录脚本
如下所示,在/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份备份目录脚本的更多相关文章
- 使用命令行备份指定文件夹并保留最新N份
客户需要对网站进行定期备份,并保留最近30天的文件,编写后以下脚本,通过Windows的任务计划进行调度 对比手工和任务计划调度运行情况来看,手工运行中可直接调用RAR.exe和网络进行传输,但是任务 ...
- Linux Shell脚本,删除旧文件,保留最新的几个文件
删除某一目录下文件,只保留最新的几个 #!/bin/bash #保留文件数 ReservedNum= FileDir=/home/dev/saas_test/testcases/report/html ...
- Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本
说明: 1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...
- windows server 定期备份数据库脚本
将以下文件保存为.bat脚本,在计划任务中添加定时任务运行此脚本即可.脚本中的备份目录,数据库目录和压缩文件目录请自行修改. @echo off rem 当前路径切换到备份数据库目录 cd D:\wa ...
- 完整和增量备份MySQL脚本
本文档采用mysqldump 对数据库进行备份,mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法 ...
- Mongodb之备份恢复脚本
本分脚本: !/bin/bash #备份文件执行路径 which mongodump DUMP= #临时备份目录 OUT_DIR= #本分存放目录 TAR_DIR= #获取当前系统时间==> 2 ...
- mysql通过mysqldump实现备份,脚本编写
每日三点同步mysql备份任务 crontab -e 0 3 * * * sh /home/shell/mysql_bakup.sh >> /dev/null 2>&1 my ...
- Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复
定时备份 要求 为了能够备份和恢复,请确保你的系统上安装了Rsync yum install rsync -y 配置备份目标机器免密认证 执行ssh-keygen -t rsa 生成私钥和公钥 ssh ...
- Rehat一键安装mysql脚本和备份数据库脚本
Rehat一键安装mysql脚本 ##说明:适用,Rehat 5 6 7 1.运行状态,运行成功输出mysql临时密码 2.代码如下 #!/bin/bash #获取系统信息 sudo cat /etc ...
随机推荐
- centos6.5下oracle11g开机自动启动方法一
转裁于 方法一 https://blog.csdn.net/wx5040257/article/details/77875690 方法二 https://blog.csdn.net/wx504025 ...
- 第五章 绘图基础(BEZIER)
/*----------------------------- BEZIER.C -- Bezier Splines Demo (c) Charles Petzold, 1998 ---------- ...
- 字符串通过在配置文件配置三个key来进行加密解密
在这里和大家分享一个加密util,相对于md5加密相信大家都已经很熟悉了吧,md5是不可逆的一种加密方式,虽说不可逆但是网上已经有了破解的方法,我这边分享一个免费的破解 网址给大家:https://w ...
- 用js实现随机选取10–100之间的10个数字,存入一个数组,并排序
var iArray = []; function getRandom(istart, iend) { var iChoice = iend - istart + 1; //加1是为了取到100 va ...
- python五十六课——正则表达式(常用函数之match)
函数:match(regex,string,[flags=0])参数:regex:就是正则表达式(定义了一套验证规则)string:需要被验证的字符串数据flags:模式/标志位,默认情况下(不定义) ...
- Python数据分析实例操作
import pandas as pd #导入pandas import matplotlib.pyplot as plt #导入matplotlib from pylab import * mpl. ...
- R环境搭建
R下载安装 https://mirrors.tuna.tsinghua.edu.cn/CRAN/ RStudio下载安装 https://www.rstudio.com/products/rstudi ...
- HDU - 5078 水题
题意:最大困难=距离 / 相邻时间 #include<cstring> #include<cstdio> #include<cmath> #define ll do ...
- 2、JUC--CAS算法
CAS (Compare-And-Swap) 是一种硬件对并发的支持,针对多处理器操作而设计的处理器中的一种特殊指令,用于管理对共享数据的并发访问. CAS 是一种无锁的非阻塞算法的实现. C ...
- jvm内存模型中-栈,方法区,程序计数器是线程安全的
文章转自 https://www.cnblogs.com/myna/p/7567889.html 引文 JDK7及之前版本的方法区(Method Area)和Java堆一样,是各个线程共享的内存区域 ...