从jenkins获取ftp地址,下载文件并解压

本文介绍了一个名为DownloadAndUnCompress.py的Python脚本,该脚本能够从Jenkins服务器获取FTP地址,并自动下载文件后进行解压缩。这个过程对于自动化运维任务尤其有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DownloadAndUnCompress.py

# -*- coding: utf-8 -*-
'''
Created on 2016年11月9日

@author: shenyf
'''
import ftplib
import socket
import os
import jenkins
import re
from jenkins import JenkinsException
import sys
import platform
import subprocess
import shutil

class DownloadAndUnCompress():
    '''
    downdload this pyuthon script example d:\test
    move to d:\
    use like this
    D:\test> python DownloadAndUnCompress.py  http://xxxxxx/job/xxxxxxxxxxxx  forqa
                    this python script         jenkins job url                                    need to download type
    
    result :
            d:\-----forqa
               -----forqa.tar.gz
    '''
    def __init__(self, args):
        '''
        constructor
        '''
        self.ftpHost = 'xxxxxx'
        self.ftpUserName = 'xxxx'
        self.ftpPasswd = 'xxxxx'
        # ftp remote directory
        self.remoteDir = None
        self.localDir = None
        # downloadType :forqa  online  offline
        self.jenkinsHost, self.jobName, self.downloadType = self.__parse(args)
        self.lastBuildNumber = None
        
        self.server = self.__initJenkins(self.jenkinsHost)
        self.OSType = self.checkOSType()
        self.setLocalDir()
    
    def __parse(self, args):
        '''
        解析命令行传入的参数
        @param args: 传入的参数
        @return: host, jobName, downloadType
        '''
        if len(sys.argv) < 3:
            print '''Usage :
            python DownloadAndUnCompress.py url type
            url: jenkins job's url
            type: forqa  online  offline'''
            exit(0)    
        else:
            url = args[1]
            host = url.split('job')[0]
            jobName = url.split('job')[1][1:]
            # if last character is '/', then delete it 
            if jobName[-1:] == '/':
                jobName = jobName[0:-1]
                
            downloadType = args[2]
            print host, jobName, downloadType
            return host, jobName, downloadType
            
    def __initJenkins(self, host):
        &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值