Shell定时删除指定时间之前的文件

最近世界杯来了,一直忙于工作和世界杯之间,都没有空来管管我的blog了,今天只能整个简单的小shell给大家了.公司要求删除一个月之前的备份文件,免得把硬盘给整爆了,上服务器看了下,居然都有3个月的备份没有清理了,还好是sql备份,不然硬盘空间早就满了.

下面是我的解决办法:

代码如下:

cat delbak.sh
#!/bin/sh
location="/root/sqlbak/"
find $location -mtime +30 -type f |xargs rm -f

ps:

location 是设置查找的目录
--mtime +30 是设置时间为30天前
-type f 这周查找的类型为文件

然后加入crontab定时来删除:

代码如下:

crontab -l
10 4 1 * * /bin/sh /root/soft_shell/delbak.sh

设定为每个月1号晚上4点10分执行脚本.当然你也可以根据你自己的需求去整.

相同的删除方法:

代码如下:

find /root/sqlbak -mtime +30 -type f -name *.gz -exec rm -f {} \;

(0)

相关推荐

  • 使用vbs脚本定时删除N天前的文件

    脚本放在定时任务里代替服务定时执行一些操作比较方便,下面是实现删除文件夹下N天前创建的文件的vbs脚本,在配置文件 DelFolderList.txt 中配置要删除的文件路径,ONLY-DEL-FILES 下的路径 是只删除其下的文件,不删除其内的子目录的文件.DEL-FOLDER-FILES下的路径 是删除其内文件及其子目录内的文件,子目录为空时删除目录,删除的文件list 放在log文件夹内.例配置文件DelFolder.txt 内容如下: ONLY-DEL-FILESE:\Code\tes

  • 定时删除一个文件夹内的所有子文件夹和文件的方法

    在win9x的年代,用deltree这个外部命令就很容解决这个问题,不过从windows 2000 及windows xp之后,就取消了这个命令(真的是很奇怪),那么现在怎么解决呢?大家可能想到用 del+rd来解决这个问题.但有个问题,就是rd命令会删除您指定的目录.例如,当前目录结构如下: D:\>attrib /s /d d:\test\*.* A    R  I    D:\test\1.txt          此文件带有只读属性 A   H   I    D:\test\2.txt 

  • 使用mysql事件调度器定时删除binlog

    MySQL的事件调度器可以精确到每秒钟执行一个任务,对于一些对数据实时性要求比较高的应用(例如:股票.赔率.比分等)就非常适合.先查看是否启动这个功能: 复制代码 代码如下: SELECT @@event_scheduler; 在使用这个功能之前必须确保 event_scheduler已开启,可执行: 复制代码 代码如下: SET GLOBAL event_scheduler = 1; 或我们可以在配置my.cnf文件 中加上event_scheduler = 1然后来对 binlog 的删除写

  • php定时删除文件夹下文件(清理缓存文件)

    那么有没有方法自动清理临时文件夹呢? 以下代码就是一个简单定时清理文件夹下文件的php代码. ps:这个代码如果不重启网站会一直执行下去,所以只用作于本地环境测试,请别在网站上测试. 复制代码 代码如下: <?php ignore_user_abort(); //客户端断开时,可以让脚本继续在后台执行 set_time_limit(0); //忽略php.ini设置的脚本运行时间限制 $interval = 5*60; //设置执行周期,单位为秒,5分钟为 5*60=300 do{ $dir =

  • Windows和Linux下定时删除某天前的文件的脚本

    以前做到最多的定时我们就是定时备份功能了,我们常用利用定时功能来备份网站数据或备份数据库了,下面我来给(www.jb51.net)大家介绍几个Linux与Windows中定时删除某天前的文件方法,这个与备份有点区别,但大同小义了. Windows下bat文件内容如下: 复制代码 代码如下: @echo off forfiles -p "D:\servers\apache2.2\logs" -s -m *.log -d -15 -c "cmd /c del @path"

  • vbs 定时删除功能实现代码

    参考代码一: 复制代码 代码如下: Function DeleteLog( )    Dim objFSO, objFolder, strPath, targetFSO, subFSO, DirPath       DirPath = createobject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.Path&"\Log\"    Set objFS

  • Shell定时删除指定时间之前的文件

    最近世界杯来了,一直忙于工作和世界杯之间,都没有空来管管我的blog了,今天只能整个简单的小shell给大家了.公司要求删除一个月之前的备份文件,免得把硬盘给整爆了,上服务器看了下,居然都有3个月的备份没有清理了,还好是sql备份,不然硬盘空间早就满了. 下面是我的解决办法: 复制代码 代码如下: cat delbak.sh #!/bin/sh location="/root/sqlbak/" find $location -mtime +30 -type f |xargs rm -f

  • 利用shell命令删除指定的文件的方法

    今天为了省事文件内容都copy过来了.又为了省事,想了一想,用脚本比较开心.所以就写了一个shell脚本,在此做一个记录. #!/bin/bash ls  -li  | tail -n +2 | cat -n read -p "请输入要删除的行:" num inum=`ls -li  | tail -n +2 | cat -n | awk -F ' ' '$1=='$num'{print $2}'` find ./  -inum $inum -exec rm -rf {} \; 运行脚

  • python 删除指定时间间隔之前的文件实例

    遍历指定文件夹下的文件,根据文件后缀名,获取指定类型的文件列表:根据文件列表里的文件路径,逐个获取文件属性里的"修改时间",如果"修改时间"与"系统当前时间"差值大于某个值,则删除该文件. #!/usr/bin/env python # -*- coding: utf-8 -*- """Document: Remove Synctoycmd sync expired .tmp files""&qu

  • php实现删除指定目录下相关文件的方法

    本文实例讲述了php实现删除指定目录下相关文件的方法.分享给大家供大家参考.具体实现方法如下: 通常来说在php中删除文件最简单的方法就是直接使用unlink命令,而对于需要删除指定目录下的指定文件的情况,就需要遍历删除了. 具体实例代码如下: 复制代码 代码如下: <?php  //删除指定文件夹下的非法文件  function my_del($dir)  {     if(is_dir($dir)){         //打开指定文件夹         if($handle = opendi

  • Mysql下自动删除指定时间以前的记录的操作方法

    关于Event:mysql5.1版本开始引进event概念.event既"时间触发器",与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程. 首先删除2天以前记录的SQL语句(webserver_monitormemory为表名,time为时间字段): delete From webserver_monitormemory where DATE(time) &

  • Python删除指定目录下过期文件的2个脚本分享

    脚本1: 这两天用python写了一个删除指定目录下过期时间的脚本.也可能是我初学python,对python还不够熟习,总觉得这个脚本用shell写应该更简单也更容易些.就功能上来说,该脚本已经实现了我想要的效果,不过该脚本还不够通用性,还有更多可以完善的地方.目前该脚本在python2.4下运行良好.同时,我在脚本中加入了对python版本的判断,理论上2.7下也应该可以正常使用.有环境的朋友可以帮忙测试一下.该脚本不完善的地方在于,只能支持一级目录下的文件删除,还不支持目录递归.同时过期文

  • 用Python脚本来删除指定容量以上的文件的教程

    文件多了乱放, 突然有一天发现硬盘空间不够了, 于是写了个python脚本搜索所有大于10MB的文件,看看这些大文件有没有重复的副本,如果有,全部列出,以便手工删除 使用方式 加一个指定目录的参数 比如python redundant_remover.py /tmp 主要用到了stat模块,os.sys系统模块 import os, sys #引入统计模块 from stat import * BIG_FILE_THRESHOLD = 10000000L dict1 = {} # filesiz

  • 用批处理实现的删除特定时间以前的文件

    使用for命令读取dir /tc /o-d /a的结果,可以分成4段,前两段为日期与时间,第3段为目录或文件大小,第4段为文件名或目录名.然后根据第1段和第2段与需要的时间进行比较,决定是否删除文件 @echo off rem cd /d f:\temp rem mDateTime格式: yyymmddHHmm set mDateTime=200608161907 for /f "skip=4 tokens=1,2,3,4* delims=<>" %%i in ('dir 

随机推荐