· 7 years ago · Aug 23, 2018, 05:52 PM
1#coding=utf-8
2
3import os
4from qcloud_cos import CosConfig
5from qcloud_cos import CosS3Client
6import sys
7import logging
8import time
9
10
11logging.basicConfig(level=logging.INFO, stream=sys.stdout)
12
13
14DB_HOST = os.getenv('DB_HOST') #'localhost'
15DB_PORT = os.getenv('DB_PORT') #'3306'
16DB_USER = os.getenv('DB_USER') #'mysqldump'
17DB_USER_PASSWORD = os.getenv('DB_PWD') #'abc123!@#'
18DB_NAME = os.getenv('DB_NAME') #'wordpress'
19
20BACKUP_PATH = '/tmp'
21
22SECRET_ID = os.getenv('SECRET_ID') #'AKIDQm6iUh2NJ6jL41tVUis9KpY5Rgv49zyC'
23SECRET_KEY = os.getenv('SECRET_KEY') #'xxxlbNyQo4EMJ5jPGA7sUvHWaSAlxxxxx'
24COS_REGION = os.getenv('COS_REGION') #'ap-shanghai'
25COS_BUCKET = os.getenv('COS_BUCKET') #"mysqldump-1253970226"
26COS_DIRECTORY = os.getenv('COS_DIRECTORY') #"/wordpress"
27
28
29config = CosConfig(Secret_id=SECRET_ID, Secret_key=SECRET_KEY, Region=COS_REGION, Token="")
30client = CosS3Client(config)
31
32
33def backup2cos(file, bucket, key):
34 response = client.put_object_from_local_file(
35 Bucket=bucket,
36 LocalFilePath=file,
37 Key=key,
38 )
39 print(response)
40 return response
41
42def main_handler(event, context):
43 timestr = time.strftime('%Y%m%d-%H%M%S', time.localtime(time.time()))
44 db = DB_NAME
45 filename = db+"-"+timestr+".sql"
46 filepath = BACKUP_PATH + os.sep + filename
47 print "Start Backup"
48 dumpcmd = "./mysqldump -h " + DB_HOST + " -P " + DB_PORT + " -u" + DB_USER + " -p'" + DB_USER_PASSWORD + "' " + db + " > " + filepath
49 print dumpcmd
50 print os.popen(dumpcmd).read()
51 print "Backup script completed"
52 print "Your backups has been created in '" + filepath + "' file"
53 print os.popen('ls -l /tmp').read()
54 print "finish backup"
55 print "start send to cos"
56 backup2cos(filepath, COS_BUCKET, COS_DIRECTORY + "/" +filename)
57 print "finish send to cos"
58
59if __name__ == "__main__":
60 main_handler("","")