Example #1
0
    def scp_bet_two_servers(self): # 远程第三方执行,在另两个server间copy

        text = "%s %s" % (
            datetime.datetime.now(), "Three:  Scp between two servers,Please wait ....")
        print "\033[1;32;40m%s\033[0m" % text  # 绿色

        log_w(text)

        #from_file = '/apps/bak_db_%s.sql' % self.today
        from_file = '/apps/mydumper_export/bak.tar'

        to_dir = '/apps/mydumper_import'

        r=func.remote_exe_scp_bet_two_servers(
            self.from_host,
            self.to_host,
            self.os_password_source,
            self.os_password_target,
            from_file,
            to_dir
            )

        if r == '':
            text = "%s Scp between two servers  Execute success !" % datetime.datetime.now()
            log_w(text)
            print "\033[1;32;40m%s\033[0m" % text  # 绿色
        else:
            text = "%s Scp between two servers Execute Error !" % datetime.datetime.now()
            log_w(text)
            print "\033[1;31;40m%s\033[0m" % text  # 古铜色

        return r
Example #2
0
    def scp_bet_two_servers(self,v_prosess_id): # 远程第三方执行,在另两个server间copy mydumper导出文件

        text = "%s %s" % (
            datetime.datetime.now(), "Three:  Scp between two servers,Please wait ....")
        print "\033[1;32;40m%s\033[0m" % text  # 绿色

        log_w(text)

        #from_file = '/apps/bak_db_%s.sql' % self.today
        from_file = '%s/bak.tar' % (self.mydumper_export_path)

        #to_dir = '/apps/mydumper_import'
        to_dir = self.mydumper_import_path
        
        v_scp_bet_two_server = 'scp -r apps@%s:%s apps@%s:%s' % (self.from_host,from_file,self.to_host,to_dir)
        v_update_sql = '''update dba_job_progress set cur_prog_shell_cmd = ' ''' + v_scp_bet_two_server +''' ' where id= '''+ str(v_prosess_id)
        print v_update_sql    
        self.db.execute(v_update_sql)

        r=func.remote_exe_scp_bet_two_servers(
            self.from_host,
            self.to_host,
            self.os_password_source,
            self.os_password_target,
            from_file,
            to_dir
            )

        if r == '':
            text = "%s Scp between two servers  Execute success !" % datetime.datetime.now()
            log_w(text)
            print "\033[1;32;40m%s\033[0m" % text  # 绿色
        else:
            text = "%s Scp between two servers Execute Error ! %s" % (datetime.datetime.now(),r)
            log_w(text)
            print "\033[1;31;40m%s\033[0m" % text  # 古铜色

        return r
Example #3
0
    def scp_xtra_bet_two_servers(self,v_prosess_id): 

        text = "%s %s" % (
            datetime.datetime.now(), "Three:  Scp between two servers,Please wait ....")
        print "\033[1;32;40m%s\033[0m" % text  # 绿色

        log_w(text)

        from_file="%s/%s" % (self.xtrabackup_export_path,self.xtra_time)

               
        to_dir = self.xtrabackup_restore_path  # datadir= /apps/dbdat

        v_scp_bet_two_server = 'scp -r apps@%s:%s apps@%s:%s' % (self.from_host,from_file,self.to_host,to_dir)
        v_update_sql = '''update dba_job_progress set cur_prog_shell_cmd = ' ''' + v_scp_bet_two_server +''' ' where id= '''+ str(v_prosess_id)
        print v_update_sql    
        self.db.execute(v_update_sql)

        r=func.remote_exe_scp_bet_two_servers(
            self.from_host,
            self.to_host,
            self.os_password_source,
            self.os_password_target,
            from_file,
            to_dir
            )

        if r == '':
            text = "%s Scp between two servers  Execute success !" % datetime.datetime.now()
            log_w(text)
            print "\033[1;32;40m%s\033[0m" % text  # 绿色

            # 把target 机器的datadir move,然后把新copy的xtra 目录,move 为原来的数据目录名
             
            # 首先获取Target datadir 目录名 mariadb10_data3306
            # 
            v_target_datadir_path = func.remote_off_get_datadir_path(self.to_host,self.db_port_target,2)
            
            # cd /apps/dbdat; mv mariadb10_data3306 mariadb10_data3306_时间戳;
            # mv self.xtra_time mariadb10_data3306
            v_exe_cmd = r'''cd %s;mv %s %s_%s;mv %s %s''' % (
                to_dir,v_target_datadir_path,v_target_datadir_path,self.xtra_time,self.xtra_time,v_target_datadir_path)
            
            v_exe_cmd_1 = r'''cd %s;mv %s %s_%s;mv %s %s''' % (
                to_dir,v_target_datadir_path,v_target_datadir_path,self.xtra_time,self.xtra_time,v_target_datadir_path)
            
            v_update_sql = '''update dba_job_progress set cur_prog_shell_cmd = ' ''' + v_exe_cmd_1 +''' ' where id= '''+ str(v_prosess_id)
            print v_exe_cmd_1
            print v_update_sql
            self.db.execute(v_update_sql)

            print v_exe_cmd


            r = func.remote_shell_cmd_no_result(self.to_host,self.os_user, self.os_password_target,v_exe_cmd)

            
            #r 返回空串表示成功
        else:
            text = "%s Scp between two servers Execute Error ! %s" % (datetime.datetime.now(),r)
            log_w(text)
            print "\033[1;31;40m%s\033[0m" % text  # 古铜色



        return r