保留最新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 ...
随机推荐
- SqlServer索引页损坏恢复
问题背景 运维操作失误,在没有正常关闭sqlserver的情况下,将服务器关闭了,重启后某些表损坏(应该是某些页损坏了,没有损坏的页还能访问到数据,但是访问损坏了的页就有问题),目前数据库只有4.20 ...
- 关于elk中filebeat定义好日志输出,但是redis里面却没有输出内容的问题
这两天在搞elk的时候,filebeat中指定输出日志至Broker(此处Broker采用redis作为缓存),但是redis中却没有内容,所以就开始排查来 filebeat采用RPM安装的方式来的. ...
- MATLAB矩阵的LU分解及在解线性方程组中的应用
作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 五.解答(按如下顺序提交电子版) 1.(程序) (1)LU分解源程序: function [ ...
- git clone 遇到的坑
问题描述: 使用git clone 拉代码遇到了需要输入密码的情况,但是我输入密码输入不了还有怎么都拉取不下代码 很郁闷的说~ 于是,我去问其他人,配置了我的SSH公匙,但是还是不行,我又去百度,果然 ...
- swift的调用约定
swift的静态绑定 Swift Calling Convention @convention(swift) func foo(_ x:Int, y:Int) sil @foo : $(x:Int, ...
- 踏得网互联网新技术垂直搜索服务和分享 - HTML5动效/特效/动画搜索
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/iefreer/article/details/34917729 当前主流搜索引擎在解决互联网技术创意 ...
- myeclipse中配置spring xml自己主动提示
版权声明: https://blog.csdn.net/zdp072/article/details/24582173 这是一篇分享技巧的文章:myeclipse中配置spring xml自己主动提示 ...
- UVA1599-Ideal Path(BFS进阶)
Problem UVA1599-Ideal Path Time Limit: 3000 mSec Problem Description New labyrinth attraction is ope ...
- Arduino IDE for ESP8266 项目(3)创建AP+STA
官网API:http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html STA (客户端)手机连接路由器 S1 *简 ...
- zabbix_agent安装
#!/bin/bash#by Charon2Pluto#(linux)ML=`df |awk '{print $2,$NF}'|sort -n|tail -1|awk '{print $2}'` if ...