浏览代码

factorh backup delete config

amenpunk 3 年之前
父节点
当前提交
8e5dcdb228
共有 5 个文件被更改,包括 109 次插入18 次删除
  1. 84 18
      app.py
  2. 二进制
      dump/test001/coleccion1.bson
  3. 1 0
      dump/test001/coleccion1.metadata.json
  4. 0 0
      test
  5. 24 0
      time.py

+ 84 - 18
app.py

1
 import os
1
 import os
2
-import time
3
-import datetime
4
-import pipes
2
+from datetime import datetime, timedelta
5
 import ftplib
3
 import ftplib
6
 
4
 
7
 from subprocess import Popen, PIPE
5
 from subprocess import Popen, PIPE
8
 
6
 
9
-# DB_LIST = ['BDECR', 'BDEDO', 'BDEGT', 'BDEHN', 'BDENI', 'BDEPA', 'BDESV'] DB_LIST = ['BDALPHAGT']
10
-DB_LIST = ['BDEDO']
7
+# DB_LIST = ['BDECR', 'BDEDO', 'BDEGT', 'BDEHN', 'BDENI', 'BDEPA', 'BDESV']
8
+# DB_LIST = ['TestDB', 'backuptest']
9
+DB_LIST = ['backuptest', 'factormysql']
11
 DB_USER = 'haproxy'
10
 DB_USER = 'haproxy'
12
 DB_PASS = str(os.getenv('QAPASS'))
11
 DB_PASS = str(os.getenv('QAPASS'))
13
 DB_HOST = '159.203.104.215'
12
 DB_HOST = '159.203.104.215'
14
 BACKUP_PATH = '/backup/'
13
 BACKUP_PATH = '/backup/'
15
 
14
 
16
 
15
 
16
+def OpenFTP():
17
+    try:
18
+        ftp = ftplib.FTP("165.227.114.190")
19
+        ftp.login("factor", 'rh$2021')
20
+        ftp.cwd('upload')
21
+        return ftp
22
+    except ftplib.Error as er:
23
+        print(f'FTP open error { er }')
24
+    return
25
+
26
+def DeleteFromStorage(filename):
27
+    try:
28
+        ftp = OpenFTP()
29
+        ftp.delete(filename)
30
+        ftp.close()
31
+    except BaseException as e:
32
+        print(f'FTP DELETE ERROR {e}')
33
+    return
34
+
35
+def lessDate(fecha,dias):
36
+    return ( fecha - timedelta(days=dias)).strftime('%Y-%m-%d')
37
+
38
+def deleteFactorRH():
39
+    try:
40
+        ftp = OpenFTP()
41
+        NOW = datetime.now()
42
+        PREV = lessDate(NOW,3);
43
+        to_delete_docs = 'factorh_grupodit-' + PREV
44
+        # to_delete_docs = 'factormysql-'
45
+        files = [doc for doc in ftp.nlst() if to_delete_docs in doc ]
46
+
47
+        for doc in files:
48
+            ftp.delete(doc)
49
+
50
+        ftp.close()
51
+    except Exception as error:
52
+        print(error)
53
+        print('FTP FACTOR DELETE ERROR {error}')
54
+
55
+
17
 def PutOverSSH(path = '/home/ming/CODE/PyKup/backup/BDEDO-20082021-1145.sql', remote='mingmecca.sql'):
56
 def PutOverSSH(path = '/home/ming/CODE/PyKup/backup/BDEDO-20082021-1145.sql', remote='mingmecca.sql'):
18
-    ftp = ftplib.FTP("165.227.114.190")
19
-    ftp.login("factor", 'rh$2021')
20
-    ftp.cwd('upload')
21
-    with open(path, "rb") as file:
22
-        ftp.storbinary('STOR %s' % remote, file)
57
+    try:
58
+        ftp = OpenFTP()
59
+        with open(path, "rb") as file:
60
+            ftp.storbinary('STOR %s' % remote, file)
61
+        ftp.close()
62
+    except BaseException as err:
63
+        print(f"FTP CREATE ERROR {err}")
64
+    return
65
+
66
+def MongoBK():
67
+    BACKUP_PATH = './backup/mongo/'
68
+    try:
69
+        os.stat(BACKUP_PATH)
70
+    except:
71
+        os.mkdir(BACKUP_PATH)
72
+
73
+    mongo_url = 'mongodb://QAadmin:QA20172017@165.227.177.95:27017/test001?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false'
74
+    # mongo_url = 'mongodb://QAadmin:QA20172017@165.227.177.95:27017/candidocu_js?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false'
75
+    command = 'mongodump --uri ' + mongo_url + ' -o ' + BACKUP_PATH
23
 
76
 
77
+    with Popen(command, stdout=PIPE, stderr=None, shell=True) as process:
78
+        output = process.communicate()[0].decode("utf-8")
79
+        print(output)
24
 
80
 
25
-def Backup():
26
 
81
 
27
-    BACKUP_PATH = 'backup/'
28
-    DATETIME = time.strftime('%d%m%d-%H%M')
82
+
83
+def MysqlBK():
84
+    BACKUP_PATH = 'backup/mysql/'
85
+    NOW = datetime.now()
86
+
87
+    DATETIME =  NOW.strftime('%d%m%Y')
88
+    TO_DELETE = ( NOW - timedelta(days=3) ).strftime('%d%m%Y')
29
 
89
 
30
     for DB_NAME in DB_LIST:
90
     for DB_NAME in DB_LIST:
31
-        DATETIME = time.strftime('%d%m%Y-%H%M')
32
-        FILE_NAME = BACKUP_PATH + f'{DB_NAME}-' + DATETIME + '.sql'
91
+        # FILE = f'{DB_NAME}-' + DATETIME + '.sql'
92
+        FILE = f'{DB_NAME}-' + DATETIME + '.sql'
93
+        FILE_NAME = BACKUP_PATH + FILE
33
 
94
 
34
         try:
95
         try:
35
             os.stat(BACKUP_PATH)
96
             os.stat(BACKUP_PATH)
36
         except:
97
         except:
37
             os.mkdir(BACKUP_PATH)
98
             os.mkdir(BACKUP_PATH)
38
 
99
 
39
-
40
-        params = ' --routines --quick --compress --skip-lock-tables --verbose '
100
+        params = ' --routines=true --triggers=true --quick --compress --skip-lock-tables --verbose '
41
         command = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_PASS + " " + DB_NAME + params + " > " + FILE_NAME
101
         command = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_PASS + " " + DB_NAME + params + " > " + FILE_NAME
42
 
102
 
43
         with Popen(command, stdout=PIPE, stderr=None, shell=True) as process:
103
         with Popen(command, stdout=PIPE, stderr=None, shell=True) as process:
45
             print(output)
105
             print(output)
46
 
106
 
47
 
107
 
108
+        PutOverSSH(FILE_NAME, FILE)
109
+        DeleteFromStorage( f'{DB_NAME}-' + TO_DELETE + '.sql' )
110
+    return
48
 
111
 
112
+# MysqlBK()
113
+# MongoBK()
114
+deleteFactorRH()
49
 # Backup()
115
 # Backup()
50
-PutOverSSH()
116
+# PutOverSSH()

二进制
dump/test001/coleccion1.bson


+ 1 - 0
dump/test001/coleccion1.metadata.json

1
+{"options":{"autoIndexId":true},"indexes":[{"v":{"$numberInt":"2"},"key":{"_id":{"$numberInt":"1"}},"name":"_id_","ns":"test001.coleccion1"}],"collectionName":"coleccion1"}

+ 0 - 0
test


+ 24 - 0
time.py

1
+from datetime import datetime, timedelta
2
+
3
+
4
+def unset ():
5
+    NOW = datetime.now();
6
+    YEST = datetime.now() - timedelta(days=2)
7
+    print(NOW)
8
+    print(YEST)
9
+    print(YEST.strftime('%d%m%m'))
10
+
11
+def calcIva(num,por=2):
12
+    print( num*por )
13
+
14
+def mode():
15
+    fruta = "32"
16
+    tipo=type(id(fruta))
17
+    print(tipo)
18
+
19
+
20
+
21
+
22
+# unset();
23
+# calcIva(5, 10);
24
+mode()