#!/usr/local/bin/python3.5 import subprocess def compare_lists(docker_find, ovh_find): d = [] for file_docker in docker_find: file_name_docker = str(file_docker).split("/", -1)[-1].replace("'", '') found = False for file_ovh in ovh_find: file_name_ovh = str(file_ovh).split("/", -1)[-1].replace("'", '') if file_name_ovh == file_name_docker: found = True break if not found: d.append(file_docker) return d def files_to_move(files, directory): for file in files: file = file.decode("utf-8") str1 = f"docker cp debian-server:{file} ../gmod_zs/fastdl/{directory}/" #print(str1) subprocess.Popen([str1], shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL).communicate()[0] if __name__ == "__main__": #find maps in docker docker_find = subprocess.Popen(["docker exec debian-server find /home/gameservers_zs/gmod_zs_1/garrysmod/maps -type f"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).communicate()[0].splitlines() #find maps on our OVH machine ovh_find = subprocess.Popen(["find /home/gameservers/gmod_zs/fastdl/maps/ -type f"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).communicate()[0].splitlines() #if maps are in docker but not OVH we need to list them maps_to_move = compare_lists(docker_find, ovh_find) #move the files to OVH. files_to_move(maps_to_move, "maps")