Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
soporte-backup-db
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jesús
soporte-backup-db
Commits
dfe4033f
Commit
dfe4033f
authored
Jul 23, 2024
by
Javier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
anyado subida de BK al nas4
parent
c11455af
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
73 additions
and
10 deletions
+73
-10
.env
.env
+4
-0
create_backup_db_soporte.py
create_backup_db_soporte.py
+60
-3
setup_hyperv.py
setup_hyperv.py
+9
-7
No files found.
.env
View file @
dfe4033f
...
...
@@ -5,3 +5,7 @@ PASSWORD_SSH_SOPORTE='_RW!2k19'
DB_USER_SOPORTE = 'soporte'
DB_PASSWORD_SOPORTE = '_RW!2k14'
DB_NAME_SOPORTE = 'soporte'
USER_SFTP_PBX=admin
PWD_SFTP_PBX=_RW!2k14
create_backup_db_soporte.py
View file @
dfe4033f
from
env
import
getenv
import
subprocess
from
datetime
import
datetime
from
datetime
import
datetime
,
timedelta
import
pathlib
from
ftplib
import
FTP
import
os
def
create_backup_database_soporte
():
"""
...
...
@@ -23,6 +24,62 @@ def create_backup_database_soporte():
subprocess
.
run
(
command
,
stdout
=
f
)
print
(
'Finalizada copia base de datos soportes'
)
def
eliminar_archivos_antiguos_ftp
(
ftp
):
"""
Elimina archivos antiguos en un directorio FTP si son anteriores a 'dias'.
:param ftp: Objeto de conexión FTP
:param dias: Número de días para considerar un archivo como antiguo
"""
# Obtiene la lista de archivos en el directorio
archivos
=
ftp
.
nlst
()
# Fecha límite para la eliminación de archivos
fecha_limite
=
datetime
.
now
()
-
timedelta
(
days
=
7
)
for
archivo
in
archivos
:
# Obtiene la información del archivo
try
:
detalle_archivo
=
ftp
.
sendcmd
(
f
'MDTM {archivo}'
)
fecha_modificacion_str
=
detalle_archivo
[
4
:]
.
strip
()
fecha_modificacion
=
datetime
.
strptime
(
fecha_modificacion_str
,
"
%
Y
%
m
%
d
%
H
%
M
%
S"
)
# Compara la fecha de modificación con la fecha límite
if
fecha_modificacion
<
fecha_limite
:
print
(
f
"Eliminando archivo antiguo: {archivo} (Modificado el: {fecha_modificacion})"
)
ftp
.
delete
(
archivo
)
except
Exception
as
e
:
print
(
f
"No se pudo obtener la fecha de {archivo}: {e}"
)
def
upload_sftp_file
():
"""Subo al ftp la copia de seguridad de la base de datos de soporte almacenada en la carpeta backups.
Return: list-> Devuelvo una lista con las rutas locales de los ficheros que almacenamos en el ftp.
"""
path_dir_backups
=
pathlib
.
Path
(
'/home/rentel/soporte-backup-db/backups'
)
.
absolute
()
contenido_backup
=
os
.
listdir
(
path_dir_backups
)
file_upload
=
[]
if
len
(
contenido_backup
)
!=
0
:
# Creo conexión con el filecilla recorro contenido backup subiendo lo que encuentre
ftp
=
FTP
(
'192.168.2.230'
)
# connect to host, default port
ftp
.
login
(
user
=
getenv
(
'USER_SFTP_PBX'
),
passwd
=
getenv
(
'PWD_SFTP_PBX'
))
directorio_almacenamiento_ftp
=
'DBsoporte'
ftp
.
cwd
(
directorio_almacenamiento_ftp
)
for
file_backup
in
contenido_backup
:
ftp
.
storbinary
(
'STOR '
+
file_backup
,
open
(
os
.
path
.
join
(
path_dir_backups
,
file_backup
),
'rb'
))
file_upload
.
append
(
os
.
path
.
join
(
path_dir_backups
,
file_backup
))
print
(
f
'fichero {file_backup} subido a ftp carpeta DBsoporte'
)
eliminar_archivos_antiguos_ftp
(
ftp
)
ftp
.
quit
()
return
True
else
:
print
(
'Directorio backups vacio'
)
return
False
setup_hyperv.py
View file @
dfe4033f
from
create_backup_db_soporte
import
create_backup_database_soporte
from
create_backup_db_soporte
import
create_backup_database_soporte
,
upload_sftp_file
from
upload_pcloud_backup
import
upload_solo_pcloud_sp
,
delete_file_date
if
__name__
==
'__main__'
:
#Crea copia de seguridad y lo almacena en la carpeta backups
create_backup_database_soporte
()
#Sube a Pcloud la backups
upload_backups_soporte_pcloud
=
upload_solo_pcloud_sp
(
True
)
if
upload_backups_soporte_pcloud
:
#Borra fichero en Pcloud si su fecha de creación es anterior a 25 dias
delete_file_date
()
\ No newline at end of file
correct
=
upload_sftp_file
()
if
correct
:
#Sube a Pcloud la backups
upload_backups_soporte_pcloud
=
upload_solo_pcloud_sp
(
True
)
if
upload_backups_soporte_pcloud
:
#Borra fichero en Pcloud si su fecha de creación es anterior a 25 dias
delete_file_date
()
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment