python删除指定日期前的备份文件

这个脚本还有待完善,没有加入迭代子目录,后期完善。

#!/bin/env python
#coding=utf-8
import time,datetime,os,sys

dir=‘/usr/local/src‘
#被删除文件写入日志文件
logdir=‘/var/log‘
logfile=os.path.join(logdir,‘delete.log‘)

# 定义时间格式
time_format = "%a %b %d %H:%M:%S %Y"

# 函数返回"2015-02-28 14:50:12"格式时间
def string2time(str_time):
  f_time=datetime.datetime.strptime(str_time,time_format)
  f_time=f_time.strftime(‘%Y-%m-%d %H:%M:%S‘)
  return f_time

#取得当前时间
today=datetime.datetime.now()
#定义2个星期
four_weeks=datetime.timedelta(weeks=2)
#取得2星期前日期
four_weeks_ago=today - four_weeks
#将时间转成timestamps
four_weeks_ago_timestamps=time.mktime(four_weeks_ago.timetuple())

#列出目录中所有文件
files=os.listdir(dir)

#打开要删除的文件日志
fh=open(logfile,"w+")

for i in files:
  #忽略.开头文件
  if i.startswith(‘.‘):
    continue
  #忽略目录
  if os.path.isdir(os.path.join(dir,i)):
    continue
  
  #获取文件的modify时间,并转化成timestamp格式
  file_timestamp=os.path.getmtime(os.path.join(dir,i))

  file_time_f=string2time(time.ctime(file_timestamp))

  #比较文件modify时间和2周前时间,取出小于等于2周前日期的文件
  if float(file_timestamp) <= float(four_weeks_ago_timestamps):
    print os.path.join(dir,i)
    #os.remove(os.path.join(dir,i))

    fh.write(str(today) + "\t" + str(file_time_f) + "\t" + os.path.join(dir,i) + "\n")
 

fh.close()
时间: 2024-10-10 22:08:36

python删除指定日期前的备份文件的相关文章

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

说明:  1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是指备份执行时当天的日期),最后只保留最近7天的备份 2.上传/home/osyunweibak里面的备份文件到远程FTP服务器上,并且只保留最近7天的备份. 3.FTP服务器:192.168.21.139 端口:21 账号:osyunwei 密码:123456 osyunweibak为备份文件存放目

利用任务计划自动删除指定日期的SQLServer备份文件

利用任务计划自动删除指定日期的SQLServer备份文件 命令FORFILES [/P pathname] [/M searchmask] [/S]         [/C command] [/D [+ | -] {yyyy-MM-dd | dd}] 方法1:描述:可以删除7天以前的后缀名为log的日志文件.如今天是6.29,那么会删除6.22号以前创建的文件.不会删除到回收站.指定路径为要删除的文件夹路径,该批处理可以放在任意文件夹下.forfiles /p D:\aizzw\LOG /m

自动备份SQL数据库 并删除指定日期之前的备份文件

/// <summary>        /// 数据备份        /// </summary>        /// public bool DataBackup(string getpath)        {            try            {                SqlConnection con = new SqlConnection();  //利用代码实现连接数据库 con.ConnectionString = Configurat

跨库备份指定日期前数据表,然后从原表删除

  public bool BackupAA() { int temp = 0; int tempdel = 0; string sql = "INSERT INTO [WMSBAK].[dbo].[AACopy] SELECT * FROM [TestDB].[dbo].[AA] WHERE AddDate <= DATEADD( d ,-45,GETDATE())"; try { temp = dbhelper.ExcuteNonequery(sql); } catch (E

Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)

文章转自:http://www.osyunwei.com/archives/8998.html 说明: 操作系统:CentOS Mongodb安装目录:/usr/local/mongodb Mongodb数据库存放目录:/home/data/mongodb/mongodb_data Mongodb日志存放目录:/home/data/mongodb/mongodb_log 实现目的: 对Mongodb数据库日志按天保存,并且只保留最近7天的日志记录. 具体操作: 使用Mongodb数据库自带的命令

python删除指定文件夹下文件和文件夹的方法

前记 ? python删除指定文件夹下的文件,是一个常用的功能.我找了不少地方,一直没有找到合适的模版,那只好自己倒腾一个比较实用的模版了. 基本模块 ? 这里面会用到几个模块,一个是??目录下所有文件的的函数:listdir 常用的使用方法: import os filenames = os.listdir('.') print(filenames) 另外一个就是查看该目录下是否有特定的文件,这个就是name.swith()函数,具体的使用方法如下: state = any(name.ends

删除指定日期的文件

参考链接:Linux命令删除指定日期的文件 #清理当前目录90天前以.log结尾的文件 find -name "*.log" -mtime +90 -exec rm {} \; 示例 #查找文件内容修改发生在2天之内的文件 find /var/log/hive/ -name "*" -mtime -2 #删除5天前的文件 # -exec参数,如果查找有返回,可在exec参数后加上需要操作的命令,查找结果用{}来代替 find /var/log/hive/ -name

按创建日期删除指定日期之前的文件夹及文件夹下的所有子目录

转载void CTestDlg::DeleteDirectory(CString strDir) { if(strDir.IsEmpty()) return; //首先删除文件及子文件夹 CFileFind ff; BOOL bFound = ff.FindFile(strDir+"\\*", 0); while(bFound) { bFound = ff.FindNextFile(); CString filename = ff.GetFileName(); if(filename=

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 [sql] view plaincopy <span style="font-family: 'Microsoft YaHei'; font-size: 14px;">MySQL定时任务event</span> 由于一些业务需求,我们可能需要定时清除数据库一些废弃的数据