consolidator

Форк
0
/
copyGuigsToRepo.py 
63 строки · 2.5 Кб
1
import os
2
import datetime
3
import shutil
4
import paramiko
5
import getpass
6
from GuidsSync import GuidsSync,GuidDescr
7

8
repoHost="vsys01775"
9
repoUser="guid"
10
repoPass="cghfdrf"
11
repoPath="/home/blokhin_sn/repo/guids"
12
ssh:paramiko.SSHClient = None
13
sftp:paramiko.SFTPClient = None
14
gs:GuidsSync = None
15

16
if __name__=="__main__":
17
    try:
18
        guids_path = os.path.dirname(os.path.realpath(__file__))+"\\guids"
19
        
20
        print("start copy guids to repo")
21
        ssh = paramiko.SSHClient()
22
        ssh.load_host_keys(os.path.expanduser(os.path.join("~", ".ssh", "known_hosts")))
23
        # passw = getpass.getpass(f"Пароль {repoUser}@{repoHost}:")
24
        ssh.connect(repoHost,username=repoUser,password=repoPass)
25
        print(f"{repoHost} connected")
26
        sftp = ssh.open_sftp()
27
        print("sftp opened")
28
        
29
        for dirname, subdirs, files in os.walk(guids_path):
30
            for filename in files:
31
                    itemName=os.path.join(dirname, filename)
32
                    stat =os.stat(itemName)
33
                    remote_path=f"{repoPath}/{filename}"
34
                    times = (stat.st_atime, stat.st_mtime)
35
                    sftp.put(itemName,remote_path)
36
                    sftp.utime(remote_path,times)
37
                    print(f"{remote_path} done") 
38
        
39
        # gs = GuidsSync(repoHost,repoUser,repoPass)
40
        # changed = gs.compare_files(repoPath,guids_path)
41
        # print("Измененные файлы на сервере:")
42
        # for file_guid  in  changed[0].keys():
43
        #     print(f"{file_guid} {changed[0][file_guid].name} -> {changed[0][file_guid].mtime_dt}")
44
        # print("Измененные локальные файлы:")            
45
        # for file_guid  in  changed[1].keys():
46
        #     print(f"{file_guid} {changed[1][file_guid].name} -> {changed[1][file_guid].mtime_dt}")            
47
        # flag1 = input("Отправить на сервер? [y/n]:")
48
        # if flag1=="y":
49
        #     print("start transfer")
50
        #     gs.send_to_remote()
51
        # flag2 = input("Получить файлы с сервера? [y/n]:")
52
        # if flag2=="y":
53
        #     print("start transfer")
54
        #     gs.get_from_remote()                   
55
                                       
56
    except Exception as exp:
57
        print(f"error: {exp}")
58
    
59
    finally:
60
        if sftp is not None: sftp.close()
61
        if ssh is not None: ssh.close()
62
        if gs is not None: gs.close_connection()
63
        print("disconnected")
64
        
65
        

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.