uploader.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:astoptool 作者: zouliuyun 项目源码 文件源码
def transfer(self, files, dest_dir):

        md5 = {}

        def md5sum(file):
            return run("md5sum %s | awk '{print $1}'" % file)

        def wget_files(filenames, dest_dir):
            mk_remote_dir(dest_dir)
            with cd(dest_dir):
                for each_filename in filenames:
                    #?????????????????ip?????????????????????md5??????????md5?????????????????????????wget -O?????!!)????????????????
                    file_exits = file_exists_check(each_filename)
                    if file_exits:
                        if md5[each_filename] == md5sum(each_filename):
                            break 

                    run('''{0} -O {1} --header="Host:{2}" http://{3}/{1}'''.format(WGET, each_filename, self.server_name, self.source_ext_ip))

        @hosts(self.source_ip)
        def _transfer(files, dest_dir):
            filenames = retrieve_file_names(files)
            root_dir = '/app/opbak/download_{}_{}'.format(TIMESTAMP, self.server_name)
            with setting_trans_env(self.server_name):
                for each_file in files:
                    filename = os.path.basename(each_file)
                    md5[filename] = md5sum(each_file)
                    with cd(root_dir):
                        run('ln -sf {} {}'.format(each_file, filename))

                execute(wget_files, filenames, dest_dir, hosts=[self.target_ip])

        @hosts(self.source_ip)
        def _copy(files, dest_dir):
            for each_file in files:
                run('{} {} {}/'.format(RSYNC, each_file, dest_dir))

        def _execute_transfer():
            if self.source_ip == self.target_ip:
                execute(_copy, files, dest_dir)
            else:
                execute(_transfer, files, dest_dir)

        if self._debug:
            _execute_transfer()
        else:
            with settings(hide('everything')):
                _execute_transfer()

#End class Uploader
########################################################################
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号