找出1个小时前更新的文件并进行拷贝

找出1个小时前更新的文件并进行拷贝:

注:
1、根据时间戳判断,非60分钟
2、os.makedirs递归创建目录路径

vi a1.py

#!/usr/bin/python
#coding=utf-8

import os
import datetime
from itertools import chain
import shutil
import sys
import time

reload(sys)
sys.setdefaultencoding(‘utf-8‘)

dir = "/ming1"
dst = "/ming2"

dirr = (‘aa‘,‘bb‘)

now = datetime.datetime.now()
d1 = (now - datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H")

#os.remove("/log/110Hud/ingmss.txt")
#os.mknod("/log/110Hud/ingmss.txt")
#os.remove("/log/110Hud/ingmss2.txt")
#os.mknod("/log/110Hud/ingmss2.txt")
#os.remove("/log/110Hud/ingmss3.txt")
#os.mknod("/log/110Hud/ingmss3.txt")

str1 = "_W"

os.chdir(dir)

for root,dirs,files in chain.from_iterable(os.walk(root) for root in dirr):
for f in dirs:
if str1 in f:
mtime = (datetime.datetime.fromtimestamp(os.path.getmtime(os.path.join(root,f)))).strftime("%Y-%m-%d %H")
if mtime == d1:
a = open(‘/log/110Hud/ingmss2.txt‘,‘a‘)
a.write(d1+"\n")
a.write(str(mtime)+"\n")
a.close()

                 b = os.path.join(root,f)
                 c = open(‘/log/110Hud/ingmss.txt‘,‘a‘)
                 c.write(d1+"\n")
                 c.write(b.encode(‘utf-8‘)+"\n")
                 c.close()

c = open(‘/log/110Hud/ingmss.txt‘,‘r‘)
for i in c.readlines():
for root,dirs,files in os.walk(i.strip()):
for d in files:
if d == "cc.pac.gz":
e = os.path.join(root,d)
g = open(‘/log/110Hud/ingmss3.txt‘,‘a‘)
g.write(d1+"\n")
g.write(e.encode(‘utf-8‘)+"\n")
g.close()
size = 0
o = open(‘/log/110Hud/ingmss3.txt‘,‘r‘)
for p in o.readlines():
q = os.path.dirname(p)
if not os.path.exists(os.path.join(dst,q)):
os.makedirs(os.path.join(dst,q))
shutil.copy2(os.path.join(dir,p.strip()),os.path.join(dst,q))
b = os.path.getsize(p.strip())
size += int(b)
si = (format((float(size) / 1024 / 1024 / 1024),‘.1f‘))
e = open(‘/log/110Hud/ingmss4.txt‘,‘w‘)
e.write(d1+"\n")
e.write(str(si)+‘G‘)
e.close()

os.system(‘/usr/bin/mail -s "host1(10.0.0.2) ming new data Size at date +%Y-%m-%d_%H:%M" [email protected] < /log/110Hud/ingmss3.txt‘)

:wq

python a1.py

原文地址:http://blog.51cto.com/yangzhiming/2131073

时间: 2024-10-13 20:02:14

找出1个小时前更新的文件并进行拷贝的相关文章

Linux/Unix 怎样找出并删除某一时间点的文件(转)

在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不需要长时间保留的,一般保留7天内的文件即可,那么我们怎么找出并删除7天前产生的日志文件和备份文件并将其删除呢? Linux/Unix提供了find 操作系统命令,使用该命令可以实现我们的目标. $man find 可以查看find命令的使用方法. 1. 找出 n 天前的文件 $find /temp/ -type f -mtime +n

Linux/Unix 怎样找出并删除某一时间点的文件

Linux/Unix 怎样找出并删除某一时间点的文件 在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不需要长时间保留的,一般保留7天内的文件即可,那么我们怎么找出并删除7天前产生的日志文件和备份文件并将其删除呢? Linux/Unix提供了find 操作系统命令,使用该命令可以实现我们的目标.$man find 可以查看find命令的使用方法.1. 找出 n 天前的文件 $find

&#8203;老男孩教育每日一题-第102天-如何找出/usr/local 下面所有shell脚本文件,并设置执行权限?

方法1.正常思路版本 find /usr/local/ -type f -name "*.sh" |xargs chmod +x chmod +x ` find /usr/local/ -type f -name "*.sh"` find /usr/local/ -type f -name "*.sh" -exec chmod +x {} \; 可是这个方法不严谨,因为有的脚本不是以.sh结尾的. 方法2.精确方法 通过file命令查看文件类型,

怎样从10亿查询词找出出现频率最高的10个

转自:http://dongxicheng.org/big-data/select-ten-from-billions/ 1. 问题描述 在大规模数据处理中,常遇到的一类问题是,在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题通常称为“top K”问题,如:在搜索引擎中,统计搜索最热门的10个查询词:在歌曲库中统计下载率最高的前10首歌等等. 2. 当前解决方案 针对top k类问题,通常比较好的方案是[分治+trie树/hash+小顶堆],即先将数据集按照h

Powershell 从多个文件中找出关键子文件(findstr)

从文件中找出关键字 $colItems = Get-ChildItem d:\test #定义文件夹的路径 foreach ($i in $colItems) #循环获取文件夹下的txt文件 { $filecontent= Get-Content $i.fullName | findstr /i "a" #获取txt文件的内容 并找到数字a write-host $filecontent $i.fullname} #输出到屏幕上  

找出1小时内占用cpu最多的10个进程的shell脚本

cpu时间是一项重要的资源,有时,我们需要跟踪某个时间内占用cpu周期最多的进程. 在普通的桌面系统或膝上系统中,cpu处于高负荷状态也许不会引发什么问题.但对于需要处理大量请求的服务器来讲,cpu是极其重要的资源. 通过监视某个时期内cpu的使用情况,我们可以找出长期占用cpu的进程并对其进行优化,或调试其它相关问题. 在linux系统中,ps命令用于收集系统中进程的详细信息.这些信息包括cpu使用情况.正在执行的命令.内存使用.进程状态等.记录在一个小时内占用过的cpu的进程,然后通过恰当地

从一千万条短信中找出重复次数最多的前10条

题目:      有1千万条短信,有重复,以文本文件的形式保存,一行一条.请用5分钟时间,找出重复出现最多的前10条. struct TNode { BYTE* pText; //直接指向文件映射的内存地址 DWORD dwCount; //计算器,记录此节点的相同短信数 TNode* ChildNodes[256]; //子节点数据,由于一个字母的ASCII值不可能超过256,所以子节点也不可能超过256 TNode() { //初始化成员 } ~TNode() { //释放资源 } }; /

汇编语言-判断素数:找出前100以内的素数

1. 题目:找出前100以内素数. 2. 要求:将前100以内素数找出并显示值,要求每行显示5个素数. 先列出求100以内素数的C++代码 然后根据C++代码写汇编代码,相对来说比较容易. 1 //The program is to find the primes from 1 to 100 with C++ 2 //By Karllen 3 //time: 05/19/2014 4 5 #include <iostream> 6 int main(void) 7 { 8 9 int numb

【海量数据处理】N个数中找出最大的前K个数

N个数中找出最大的前K个数,需要用小堆实现. 分析:由于小堆的堆顶存放堆中最小的数据,可以通过与堆顶数据进行比较,将大数据存放在堆中,注意在每次改变堆顶数据后,进行调堆,使堆顶一直存放整个堆中最小元素. void AdjustDown(int *a, size_t root, size_t size)//下调 {//小堆 size_t parent = root; size_t child = parent * 2 + 1; while (child < size) { if (child +