|
@@ -2,6 +2,13 @@ import os
|
2
|
2
|
from datetime import datetime, timedelta
|
3
|
3
|
import ftplib
|
4
|
4
|
from subprocess import Popen, PIPE
|
|
5
|
+import shutil
|
|
6
|
+
|
|
7
|
+'''
|
|
8
|
+ TODO
|
|
9
|
+ mysql bulk BDEGT database backup to dev testing db
|
|
10
|
+ zip mongodb backup and put on over FTP
|
|
11
|
+'''
|
5
|
12
|
|
6
|
13
|
|
7
|
14
|
|
|
@@ -28,18 +35,18 @@ def OpenFTP(server='FACTOR'):
|
28
|
35
|
ftp.cwd('upload')
|
29
|
36
|
return ftp
|
30
|
37
|
else:
|
31
|
|
-
|
|
38
|
+
|
32
|
39
|
ftp = ftplib.FTP()
|
33
|
40
|
ftp.connect("190.122.187.218", 2023)
|
34
|
41
|
ftp.login("ming", 'dit2020 2020')
|
35
|
|
-
|
|
42
|
+ return ftp
|
36
|
43
|
except ftplib.Error as er:
|
37
|
44
|
print(f'FTP open error { er }')
|
38
|
45
|
return
|
39
|
46
|
|
40
|
47
|
def DeleteFromSSHStorage(filename):
|
41
|
48
|
try:
|
42
|
|
- ftp = OpenFTP()
|
|
49
|
+ ftp = OpenFTP('FIREWALL')
|
43
|
50
|
ftp.delete(filename)
|
44
|
51
|
ftp.close()
|
45
|
52
|
except BaseException as e:
|
|
@@ -68,7 +75,7 @@ def DeleteFactorRH():
|
68
|
75
|
|
69
|
76
|
def PutOverSSH(path='/home/ming/CODE/PyKup/backup/BDEDO-20082021-1145.sql',remote='mingmecca.sql'):
|
70
|
77
|
try:
|
71
|
|
- ftp = OpenFTP()
|
|
78
|
+ ftp = OpenFTP('FIREWALL')
|
72
|
79
|
with open(path, "rb") as file:
|
73
|
80
|
ftp.storbinary('STOR %s' % remote, file)
|
74
|
81
|
ftp.close()
|
|
@@ -78,21 +85,33 @@ def PutOverSSH(path='/home/ming/CODE/PyKup/backup/BDEDO-20082021-1145.sql',remot
|
78
|
85
|
return
|
79
|
86
|
|
80
|
87
|
def MongoBK():
|
81
|
|
- BACKUP_PATH = './backup/mongo/'
|
|
88
|
+ BACKUP_PATH = os.getcwd() + '/backup/mongo/'
|
82
|
89
|
try:
|
83
|
90
|
os.stat(BACKUP_PATH)
|
84
|
91
|
except:
|
85
|
92
|
os.mkdir(BACKUP_PATH)
|
86
|
93
|
|
87
|
94
|
mongo_url = 'mongodb://QAadmin:QA20172017@165.227.177.95:27017/test001?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false'
|
88
|
|
-
|
89
|
|
- command = 'mongodump --uri ' + mongo_url + ' -o ' + BACKUP_PATH
|
|
95
|
+ command = 'mongodump'+ ' -o ' + BACKUP_PATH + ' --uri ' + mongo_url
|
90
|
96
|
|
91
|
97
|
with Popen(command, stdout=PIPE, stderr=None, shell=True) as process:
|
92
|
98
|
output = process.communicate()[0].decode("utf-8")
|
93
|
99
|
print(output)
|
94
|
100
|
|
95
|
101
|
|
|
102
|
+ FILE_NAME = 'MONGO-' + datetime.now().strftime('%Y-%m-%d')
|
|
103
|
+ FILE_DELETE_NAME = 'MONGO-' + lessDate(datetime.now(), 3) + ".zip"
|
|
104
|
+
|
|
105
|
+ shutil.make_archive(FILE_NAME, 'zip', BACKUP_PATH )
|
|
106
|
+
|
|
107
|
+ if( os.path.isdir( BACKUP_PATH )):
|
|
108
|
+ shutil.rmtree(BACKUP_PATH)
|
|
109
|
+
|
|
110
|
+ FILE_NAME = FILE_NAME + ".zip"
|
|
111
|
+ PutOverSSH(FILE_NAME, FILE_NAME)
|
|
112
|
+ DeleteFromSSHStorage(FILE_DELETE_NAME)
|
|
113
|
+
|
|
114
|
+
|
96
|
115
|
|
97
|
116
|
def MysqlBK():
|
98
|
117
|
BACKUP_PATH = 'backup/mysql/'
|
|
@@ -123,8 +142,6 @@ def MysqlBK():
|
123
|
142
|
DeleteFromSSHStorage( f'{DB_NAME}-' + TO_DELETE + '.sql' )
|
124
|
143
|
return
|
125
|
144
|
|
126
|
|
-MysqlBK()
|
127
|
|
-DeleteFactorRH()
|
128
|
|
-
|
129
|
|
-
|
130
|
|
-
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+MongoBK()
|