-
Notifications
You must be signed in to change notification settings - Fork 13
/
bak-per-table.py
80 lines (67 loc) · 1.82 KB
/
bak-per-table.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
from pyrogram import Client
from datetime import datetime
import time
import os
# --------------------
# START CONF
# --------------------
# database connection config
mysql_localhost = "localhost"
mysql_username = "USERNAME"
mysql_password = "PASSWORD"
world_db = "acore_world"
char_db = "acore_characters"
auth_db = "acore_auth"
# zip config
zip_password = "db_zipped"
zip_name = "db-{:%Y%m%d}.zip".format(datetime.now()) # this will result in a string like "db-20211231.zip"
# replace "me" with a chat_id or username to change the chat
chat_id = "me"
# Telegram client config
username = "TELEGRAM_USERNAME"
api_id=1234567
api_hash="1234d401234d401234d401234d40"
# --------------------
# END CONF
# --------------------
app = Client(
username,
api_id=api_id,
api_hash=api_hash
)
# --no-tablespaces is required for mysql 8.0.21 based on the user privileges (https://dba.stackexchange.com/questions/271981/access-denied-you-need-at-least-one-of-the-process-privileges-for-this-ope)
with app:
os.system("./dump-tables-mysql.sh {} {} {} {} world".format(
mysql_localhost,
mysql_username,
mysql_password,
world_db
))
os.system("./dump-tables-mysql.sh {} {} {} {} characters".format(
mysql_localhost,
mysql_username,
mysql_password,
char_db
))
os.system("./dump-tables-mysql.sh {} {} {} {} auth".format(
mysql_localhost,
mysql_username,
mysql_password,
auth_db
))
os.system("zip -P {} -r {} world characters auth".format(
zip_password,
zip_name
))
time.sleep(1)
app.send_document(
chat_id,
zip_name
)
os.system("rm -rf world")
os.system("rm -rf characters")
os.system("rm -rf auth")
os.remove(zip_name)
app.stop()
exit(0) # exit from script
app.run()