- Backup Python
+ Responder ao Tópico
-
Backup Python
alguém pode me ajudar eu consegui 3 scripts de como fazer backup no python mais
mais não to conseguindo entender nada quem puder organizar e e deichar tudo em ordem os comandos agradeço
#! / Usr / bin / python
import time
import sys
import os
##
# Configuration variables
##
# Local
script_dir = '/root/script/backup' # Dir script is located in
# Remote
remote_host = 'xx.xxx.xx.xxx' # IP Address of remote host
remote_dir = '/root/backup/tp1' # Remote backup directory
remote_user = 'root' # Remote username
# What to do
backup_home = True # Backup /home directory
backup_etc = True # Bbackup /etc directory
send_alert = True # Send email alert of backup when it finished
do_scp = True # Scp backup
# Other
max_home_dir_size = 2000000 # Max home directory size, in bytes
alert_email = '[email protected]' # Email address for alert
path_to_sendmail = '/usr/sbin/sendmail'
##
# Functions
##
# Backup function tars directory, scps to the remote host
def backup(dir, file, remote_host, remote_dir, remote_user, script_dir):
log.write("Backup up %s to %s\n" % (dir,file))
os.chdir(dir)
cmd = "tar -czf %s/%s --exclude-from=%s/backup_exclude.txt ."
% (script_dir, file, script_dir)
os.system(cmd)
os.chdir(script_dir)
log.write("Uploading %s\n" % (file))
if do_scp:
cmd = "scp -Bq %s %s@%s:%s/%s" % (
file, remote_user, remote_host, remote_dir, file)
#print cmd
os.system(cmd)
##
# Script
##
# Start log file
log_path = "%s/scp_backup.log" % (script_dir);
log = open(log_path,'w')
log.write(
"Starting script at %s\n" % time.strftime("%m/%d/%Y %H:%M:%S")
)
t1 = time.time()
# Backup all home directories
if backup_home:
cmd = 'du --max-depth=1 -k /home --exclude-from=backup_exclude.txt'
put, get = os.popen4(cmd) # Get a listing of directories and sizes
entries = get.readlines()
entries.pop()
for line in entries: # Loop over each line from the du command
line = line.rstrip()
size, dir = line.split("\t") # Divide into size and directory name
se flutuador ( tamanho ) < max_home_dir_size :
tmp = dir . divisão ( "/" ) nome # Dividir ao longo diretório '/'
arquivo # Name com base no nome do diretório, com o fim tar.gz
file = " % s . tar.gz " % ( tmp . pop ())
de backup ( dir , arquivo , remote_host , remote_dir ,
REMOTE_USER , script_dir ) # Faça backup de
# Backup / etc
se backup_etc :
cópia de segurança ( '/ etc' , 'etc_backup.tar.gz' , remote_host , remote_dir ,
REMOTE_USER , script_dir )
# Fim do arquivo de log
t2 = tempo . tempo ()
log . escrever ( "Acabar com script em % s \ n " % do tempo . strftime ( "% m / % d /% Y% H:% s:% M " ))
log . write ( "O tempo para executar script: % s segundos \ n " % ( t2 - t1 ))
log . fechar ()
# Enviar alerta
se send_alert :
MAIL = path_to_sendmail
msg = "Para: % s \ r \ n De: % s \ r \ n Assunto: SCP backup do log de ??\ r \ n \ r \ n "
% ( alert_email )
f = aberto ( log_path , 'r' ) # Receba conteúdo de arquivo de log
msg + = f . ler ()
f . fechar ()
p = OS . popen ( " % s -t " % MAIL , 'w' ) # Enviar e-mail
p . escrever ( msg )
exitcode = p . fechar ()
# if exitcode:
# print "Código de saída:% s"% exitcode
foi esse que achei ainda to começando com isso e não estou entendendo nada
se precisar ainda tenho mais 2 scripts que também não entendo se quiserem dar uma olha me avisem
-
Re: Backup Python
Olá Gabriel,
para executar o script, você deve primeiro configurar as seguintes variáveis no fonte:
script_dir = '/root/script/backup' # Dir script is located in
remote_host = 'xx.xxx.xx.xxx' # IP Address of remote host
remote_dir = '/root/backup/tp1' # Remote backup directory
remote_user = 'root' # Remote username
backup_home = True # Backup /home directory
backup_etc = True # Bbackup /etc directory
send_alert = True # Send email alert of backup when it finished
do_scp = True # Scp backup
max_home_dir_size = 2000000 # Max home directory size, in bytes
alert_email = '[email protected]' # Email address for alert
path_to_sendmail = '/usr/sbin/sendmail'
Depois da configuração, basta executá-lo, digitando python <nome do arquivo>