-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmigracao.py
121 lines (100 loc) · 3.45 KB
/
migracao.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/usr/bin/python
#
# Script feito para migracao interna de contas do cpanel
# ele realiza os mesmos procedimentos manuais, porem automatizados usando o modulo pexpect
#
# Qualquer bug ou duvida na utilizacao podem me perguntar (:
#
# Feito por Alisson Menezes - [email protected]
# Github: https://github.com/kernelcrash
#
import os
import pexpect
print '''
###############################################################################
Script para migracao interna de contas do cpanel
feito por Alisson Menezes - [email protected]
Github: https://github.com/kernelcrash
###############################################################################
Este script e a parte principal da migricao, onde voce entra com todas as contas
separadas por <enter> ao terminar de colar as contas e necessario apertar um enter vazio
feito isso o script vai pedir os servidores de origem e destino
A senha dos servidores deve ser adicionada no arquivo auto.sh na variavel senha
#################################################################################
'''
print "entre com as contas uma abaixo da outra"
var = ""
while True:
line = raw_input()
if not line: break
var += line+"\n"
contas = []
for c in var.strip().split("\n"):
contas.append(c)
origem = raw_input("digite o servidor de origem: ").strip()
destino = raw_input("digite o servidor destino: ").strip()
print "==================================================="
print "### Iniciando migracao de "+origem+" ###"
print "## para "+destino+" ###"
print "==================================================="
os.system("sleep 1")
os.system("echo \n\n\n")
passwd = "SENHA_DO_SEU_SERVIDOR"
for c in contas:
try:
print "######## GERANDO ARQUIVO FULLBACKUP #############"
p = pexpect.spawn("ssh root@"+origem+" /scripts/pkgacct-disable "+c)
p.waitnoecho()
p.sendline(passwd)
p.sendline("exit")
p.interact()
except Exception, e:
print e
try:
print "###### COPIANDO ARQUIVO ###########"
try:
p = pexpect.spawn("scp root@"+origem+":/home/*"+c+".tar.gz root@"+destino+":/home/")
p.waitnoecho()
#child.expect('Password:')
p.sendline(passwd)
p.sendline("exit")
p.interact()
except Exception, e:
print e
try:
p = pexpect.spawn("scp root@"+origem+":/home2/*"+c+".tar.gz root@"+destino+":/home/")
p.waitnoecho()
#child.expect('Password:')
p.sendline(passwd)
p.sendline("exit")
p.interact()
except Exception, e:
print e
print "###### O arquivo nao existe ###################"
except Exception, e:
print "ERRO ",e
try:
print "############ RESTAURANDO ARQUIVO ##################"
p = pexpect.spawn("ssh root@"+destino+" /scripts/restorepkg /home/*"+c+".tar.gz")
p.waitnoecho()
#child.expect('Password:')
p.sendline(passwd)
p.sendline("exit")
p.interact()
except Exception, e:
print "ERRO ",e
# PARTE EM SHELL DA ANTIGA VERSAO, SUBSTITUIDA PELO PEXPECT
# try:
# os.system("./auto.sh criar %s %s %s "% (c, origem, destino))
# except Exception, e:
# print "erro -> ",e
# continue
# try:
# os.system("./auto.sh copiar %s %s %s "% (c, origem, destino))
# except Exception, e:
# print "erro -> ",e
# try:
# os.system("./auto.sh restaurar %s %s %s "% (c, origem, destino))
# except Exception, e:
# print "erro -> ",e
print "\n\n\n\nMIGRACAO FINALIZADA!"