• python实现备份gitlab版本库并更改文件名


    脚本的功能是实现备份gitlab版本库,并修改备份后的文件名,成功后发送邮件至相关负责人,脚本如下:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    
    import time
    import os
    import commands
    import subprocess
    import smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr
    
    
    class Svnbackup(object):
        '''
        svn svnbackup and save api for thi class
        '''
    
        def __init__(self, *arg):
            pass
    
        def sendmail(self, *arg):
            # mail content
            msg = MIMEText(arg[0], 'plain', 'utf-8')
            # maill address
            msg['From'] = formataddr(["SVN邮件提醒", '发件人邮箱'])
            # receive maill address
            msg['To'] = formataddr(['运维组邮箱', '收件人邮箱'])
            # mail topic
            msg['Subject'] = arg[1]
    
            # The mail SendServer
            server = smtplib.SMTP("smtp.163.com", 25)
            server.login("发件人邮箱", "发件人邮箱密码")
            server.sendmail('发件人邮箱', ['收件人邮箱', ], msg.as_string())
            server.quit()
    
        def runback(self):
            # del old version for the svn in the backsvn server
            starttime = time.time()
            back_status = subprocess.call(
                'cd /home/git/gitlab && PATH=/usr/local/bin:/usr/bin:/bin bundle exec rake gitlab:backup:create RAILS_ENV=production CRON=1 >/dev/null 2>&1',
                shell=True)
            endtime = time.time()
    
            # cost how many seconds
            costtime = (endtime - starttime)
    
            str_time = str(endtime).split('.')[0]
    
            float_time = float(str_time)
    
            ltime = time.localtime(float_time)
    
            timestr = time.strftime("%Y-%m-%d %H:%M:%S", ltime)
    
            mail_contentinfo = '%s 总耗时:%d秒 结束时间:%s' % ('研发源gitlab(172.16.50.44)备份成功,请确认!', costtime, timestr)
            mail_error_contentinfo = '%s ' % ('研发源SVN(172.16.50.44)备份失败,请联系SA刘辉煌!')
            if os.path.exists("/home/git/gitlab/tmp/backups/%s_gitlab_backup.tar" % (str_time)):
                os.rename("/home/git/gitlab/tmp/backups/%s_gitlab_backup.tar" % (str_time),
                          "/home/git/gitlab/tmp/backups/%s_gitlab_backup.tar" % (timestr))
    
            if back_status == 0:
                self.sendmail('%s' % mail_contentinfo, 'Gitlab备份成功!')
            else:
                self.sendmail('%s' % mail_error_contentinfo, 'Gitlab备份失败')
    
        def runserver(self):
            self.runback()
    
    
    if __name__ == '__main__':
        backupsvn = Svnbackup()
        backupsvn.runserver()
        # backupsvn.modify_name()

     运行结果如下:

  • 相关阅读:
    OCP-1Z0-053-V12.02-614题
    OCP-1Z0-053-V12.02-615题
    OCP-1Z0-053-V12.02-218题
    OCP-1Z0-053-V12.02-377题
    文件内存映射CreateFileMapping和GlobalAlloc内存分配
    为什么C++不提供override这个关键字呀
    OCP-1Z0-052-V8.02-74题
    OCP-1Z0-053-V12.02-558题
    OCP-1Z0-053-V12.02-559题
    OCP-1Z0-053-V12.02-33题
  • 原文地址:https://www.cnblogs.com/uglyliu/p/7235882.html
Copyright © 2020-2023  润新知