Ejemplo n.º 1
0
from lib import utils

#1.判断必须是否传递备份文件名称
if len(sys.argv) < 2:
    print("you must set backupfilename!")
    sys.exit()

#2.判断设置的备份文件名是否已经存在
filename = sys.argv[1]
if os.path.exists(filename):
    print("%s already exists,please set another filename!" % (filename, ))
    sys.exit()

if not os.path.exists(os.path.join("/usr/bin", "pg_dump")):
    pg_dumpcmd = "cp -r packages/pg_dump /usr/bin"
    utils.execute_cmd(pg_dumpcmd, "安装pg_dump模块失败")
    chmodcmd = "chmod 777 /usr/bin/pg_dump"
    utils.execute_cmd(chmodcmd, "给pg_dump添加执行权限失败")

dbpassword = utils.getdbpassword()

print("start backup database ......")
#pg_dump -F t -c -f/root/test.tar 'host=127.0.0.1 hostaddr=127.0.0.1 port=5432 user=nailgun password=vbTwv6mC dbname=nailgun'
#dbbackupcmd = 'pg_dump -b "host=127.0.0.1 hostaddr=127.0.0.1 port=5432 user=nailgun password=%s dbname=nailgun" > /root/mydb.bak' %(dbpassword,)
utils.setPasswordFile()
dbbackupcmd = "pg_dump -F t -c -f%s -U nailgun -d nailgun -h 127.0.0.1 " % (
    filename, )
print(dbbackupcmd)
utils.execute_cmd(dbbackupcmd, "备份数据库出现异常")
print("数据库备份%s成功!" % (filename, ))
Ejemplo n.º 2
0
import sys

#1.判断必须是否传递备份文件名称
if len(sys.argv) < 2:
	print("you must set recoveryfilename!")
	sys.exit()

#2.判断需要恢复文件名是否已经存在
filename = sys.argv[1]
if not os.path.exists(filename):
	print("%s file does not exist,Please set the correct file path!" %(filename,))
	sys.exit()

print("危险操作,您确定要执行本次数据恢复操作请在下面输入yes,按下回车键即可开始执行恢复!")
confirmsg = raw_input("确定执行输入(yes):")
if confirmsg != "yes":
	print("你取消了本次恢复数据操作!")
	pass
else:
	if not os.path.exists(os.path.join("/usr/bin","pg_restore")):
		cp_restorecmd = "cp -r packages/pg_restore /usr/bin"
		utils.execute_cmd(cp_restorecmd, "安装pg_restore模块失败")
		chmodcmd = "chmod 777 /usr/bin/pg_restore"
		utils.execute_cmd(chmodcmd, "给pg_restore添加执行权限失败")
	dbpassword =  utils.getdbpassword()
	utils.setPasswordFile()
	restore_cmd = "pg_restore -U nailgun -c -n public -d nailgun -h 127.0.0.1 < %s" %(filename,)
	print(restore_cmd)
	utils.execute_cmd(restore_cmd,"恢复数据失败")
	print("成功恢复%s所有的数据,刷新浏览器后生效."%(filename,))
Ejemplo n.º 3
0
import contextlib

from sqlalchemy import create_engine
from sqlalchemy import schema

from sqlalchemy import MetaData
from sqlalchemy.engine import reflection
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm import Session
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm.query import Query

from lib import utils

nailguncmd = "cp -r packages/nailgun /usr/lib/python2.6/site-packages"
utils.execute_cmd(nailguncmd, "安装nailgun模块失败")

alembic_cmd = "cp -r packages/alembic /usr/lib/python2.6/site-packages"
utils.execute_cmd(alembic_cmd, "安装alembic模块失败")

makocmd = "cp -r packages/mako /usr/lib/python2.6/site-packages"
utils.execute_cmd(makocmd, "安装mako模块失败")

#先安装模块然后才能导入相应python模块
from nailgun.db.deadlock_detector import clean_locks
from nailgun.db.deadlock_detector import handle_lock

dbpassword = utils.getdbpassword()
engine = create_engine(
    "postgresql://*****:*****@127.0.0.1:5432/nailgun".format(dbpassword),
    client_encoding="utf-8")