My favorites | Sign in
Project Logo
             
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
#!/usr/bin/env python

import sys
import os.path
import os
import logging
from datetime import datetime
from settings import DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD

logging.basicConfig(level=logging.INFO, stream=sys.stdout)

BACKUP_DIR = "%s/backups" % os.path.dirname(__file__)
MYSQL_CMD = 'mysqldump'
ZIP_CMD = 'zip'

def _setup():
if not os.path.exists(BACKUP_DIR):
logging.debug("Created backup directory %s" % BACKUP_DIR)
os.mkdir(BACKUP_DIR)
else:
logging.debug("Using backup directory %s" % BACKUP_DIR)

def _backup_name():
now = datetime.now()
day_name = now.strftime("%A")
file_name = "%s.sql" % day_name.lower()
logging.debug("Setting backup name for day name %s as %s" % (day_name, file_name))
return file_name

def _run_backup(file_name):
cmd = "%(mysqldump)s -u %(user)s --password=%(password)s %(database)s > %(log_dir)s/%(file)s" % {
'mysqldump' : MYSQL_CMD,
'user' : DATABASE_USER,
'password' : DATABASE_PASSWORD,
'database' : DATABASE_NAME,
'log_dir' : BACKUP_DIR,
'file': file_name}
logging.debug("Backing up with command %s " % cmd)
return os.system(cmd)

def _zip_backup(file_name):
backup = "%s/%s" % (BACKUP_DIR, file_name)
zipfile_name = "%s.zip" % (backup)

if os.path.exists(zipfile_name):
logging.debug("Removing previous zip archive %s" % zipfile_name)
os.remove(zipfile_name)
zip_cmds = {'zip' : ZIP_CMD, 'zipfile' : zipfile_name, 'file' : backup }

# Create the backup
logging.debug("Making backup as %s " % zipfile_name)
os.system("%(zip)s -q -9 %(zipfile)s %(file)s" % zip_cmds)

# Test our archive
logging.debug("Testing zip archive")
if not os.system("%(zip)s -T -D -q %(zipfile)s" % zip_cmds):
# If there was no problem, then delete the unzipped version
os.remove(backup)
return True
else:
return False



def main(*args):
_setup()
file_name = _backup_name()
_run_backup(file_name)
return(_zip_backup(file_name))


if __name__ == '__main__':
sys.exit(main(*sys.argv))
Show details Hide details

Change log

r589 by liza31337 on Mar 03, 2009   Diff
Resurrecting
Go to: 
Sign in to write a code review

Older revisions

r540 by liza31337 on Feb 12, 2009   Diff
Branch for developments related to
improving caching
r470 by liza31337 on Dec 11, 2008   Diff
Resolving conflicts on live
r273 by liza31337 on Jul 17, 2008   Diff
Don't create extraneous directories
All revisions of this file

File info

Size: 2156 bytes, 73 lines

File properties

svn:executable
*
Hosted by Google Code