1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @Time : 2019-12-05 14:39
  4. # @Author : Anthony
  5. # @Email : ianghont7@163.com
  6. # @File : check_gitlab.py
  7.  
  8. # import requests
  9. # import re
  10. # import time
  11. #
  12. # url = "http://gitlab.test.cn/api/v3/projects?private_token=xxxxx"
  13. #
  14. # response = requests.get(url)
  15. # print(response.json())
  16. #
  17.  
  18. import os
  19. import time
  20. import datetime
  21. import threading
  22. import subprocess
  23.  
  24. # 注意点,千万要注意不要和内置方法重名啊!!!!
  25.  
  26. # 文件所在路径
  27. source_path = "/home/xxx/xxx/"
  28.  
  29. # 当前时间
  30. now_time = datetime.datetime.now()
  31.  
  32. # 获取全部文件名称
  33. source_path_lists = os.listdir(source_path)
  34.  
  35. # 清理过期文件,只保留7天内
  36. def remove_dated_files():
  37. # 选择要提前的天数
  38. change_time = now_time + datetime.timedelta(days=-2)
  39. # 格式化处理时间戳
  40. change_time_format = change_time.strftime('%Y%m%d')
  41. for line in source_path_lists:
  42. file_ctime = int(line.split('_')[0].strip())
  43. file_local_time = time.localtime(file_ctime)
  44. # 文件名中的时间戳
  45. file_local_time_end = time.strftime("%Y%m%d", file_local_time)
  46. # 清理2天前的过期文件
  47. if file_local_time_end <= change_time_format:
  48. all_file_path = source_path + line
  49. # 清理过期文件
  50. os.remove(all_file_path)
  51. print('2天前过期文件 %s 清理完成,该文件创建时间:%s' % (all_file_path, file_local_time_end))
  52.  
  53. def get_gitlab_backup_fils():
  54. for line in source_path_lists:
  55. all_file_path = source_path + line
  56. print(all_file_path)
  57. args = "scp -P xxxx %s root@192.168.xx.xx:/home/data/gitlabbackup"%all_file_path
  58. shell_runnings = subprocess.Popen(args,
  59. shell=True,
  60. stdin=subprocess.PIPE,
  61. stdout=subprocess.PIPE,
  62. stderr=subprocess.PIPE,)
  63. out, err = shell_runnings.communicate()
  64. for line in out.splitlines():
  65. print('开始传输:%s'%line)
  66.  
  67. if __name__ == "__main__":
  68. threads_lists = [threading.Thread(target=remove_dated_files),
  69. threading.Thread(target=get_gitlab_backup_fils)]
  70. for i in threads_lists:
  71. i.start()
 

定期备份和清理gitlab文件的更多相关文章

  1. SQL Server 2005数据库定期备份(非常详细)与 SQL Server 2005数据库备份定期清理

     SQL Server 2005数据库定期备份 分类: SQL Server 20052011-01-06 16:25 3320人阅读 评论(1) 收藏 举报 sql server数据库sqlserv ...

  2. Linux中设置定期备份oracle数据库

    昨天装好了oracle,今天尝试一下自动备份,我这两天装linux和oracle的目的就是这个. 如果是sql server,定期备份可以利用sql server的management studio来 ...

  3. oracle 清理跟踪文件trc,trm

    oracle的日志文件有以下几种: 警告日志,trace日志,audit日志,redo日志,归档日志 a.警告日志:也就是alert log,使用初始化参数 show parameter backgr ...

  4. 【mysql】备份篇2:使用java程序定期备份mysql数据库

    承接备份篇1, 在备份篇1中,使用dat文件加+系统计划任务程序完成mysql定期备份任务 在这一篇,备份使用java程序定期备份mysql数据库. 下面代码和程序思想给出: package com. ...

  5. 远程linux服务器mysql数据库定期备份和删除

    网上已经有部分关于Linux下定期备份mysql的方法,但是很多步骤不够详细,不适合新手,自己琢磨了很久,终于搞定了. 1.Linux服务器一般是ssh协议,如果本地也是Linux环境,可以直接通过s ...

  6. oracle导入命令,记录一下 数据库日志太大,清理日志文件

    oracle导入命令,记录一下 工作中用到了,这个命令,记录一下,前提要安装imp.exe imp PECARD_HN/PECARD_HN@127.0.0.1:1521/orcl file=E:\wo ...

  7. RMAN备份之丢失数据文件及控制文件的恢复

    About Recovery with a Backup Control FileIf all copies of the current control file are lost or damag ...

  8. 关于Linux系统清理/tmp/文件夹的原理

    转自:http://www.opsers.org/base/clean-up-on-the-linux-system-tmp-folder-you-may-want-to-know.html 我们知道 ...

  9. 通过 bsondump 命令工具 解析备份产生的bson文件

    bsondump命令是将BSON格式的文件转换为可读性更强的文件格式,例如转为为JSON 格式的文档,bsondump默认转换为json格式的文档. 当通过mongodump命令进行备份时,如果有参数 ...

随机推荐

  1. 深入理解JVM虚拟机13:再谈四种引用及GC实践

    Java中的四种引用类型 一.背景 Java的内存回收不需要程序员负责,JVM会在必要时启动Java GC完成垃圾回收.Java以便我们控制对象的生存周期,提供给了我们四种引用方式,引用强度从强到弱分 ...

  2. Python在windows平台的多版本配置

    Python在windows平台的多版本配置 快速阅读: ​ python在windows平台的环境变量以及多版本配置 ,以及pycharm如何安装包,以及安装包出错时如何排查. 1.python环境 ...

  3. C语言JSON序列化/反序列化

    最近想找一个C语言处理嵌套结构体和结构体数组的json库,理想的是能够很容易处理复杂结构体嵌套,并且使用简单的,但是没找到比较合适的,于是打算自己封装一个: 两个问题: C语言结构体本身没有元数据,这 ...

  4. Go 随机打乱 字符串 数组

    func Random(strings []string) string { for i := len(strings) - 1; i > 0; i-- { num := rand.Intn(i ...

  5. 优化Unity游戏项目的脚本(下)

    金秋9月,我们祝所有的老师们:教师节快乐 ! 今天,我们继续分享来自捷克的开发工程师Ondřej Kofroň,分享C#脚本的一系列优化方法. 在优化Unity游戏项目的脚本(上)中,我们介绍了如何查 ...

  6. useState 的介绍和多状态声明(二)

    useState的介绍 useState是react自带的一个hook函数,它的作用是用来声明状态变量. 那我们从三个方面来看useState的用法,分别是声明.读取.使用(修改).这三个方面掌握了, ...

  7. JS Array.apply会有内存泄漏问题

    报错内容: Maximum call stack size exceeded 参考:https://www.jianshu.com/p/b9ba0ddd3392 对象较多,前端JS内存溢出: 数组克隆 ...

  8. 【转】Python读取PDF文档,输出内容

    Python3读取pdf文档,输出内容(txt) from urllib.request import urlopen from pdfminer.pdfinterp import PDFResour ...

  9. pytorch 计算图像数据集的均值和标准差

    在使用 torchvision.transforms进行数据处理时我们经常进行的操作是: transforms.Normalize((0.485,0.456,0.406), (0.229,0.224, ...

  10. ROS学习笔记(三)

    机器人建模与仿真URDF(Unified Robot Descrption Format,统一机器人描述格式),ROS提供了URDF的c++解析器.安装语法检查工具sudo apt-get insta ...