¡Esta es una revisión vieja del documento!


Respaldarv2 es un script de respaldos para bases de datos de MySQL, para varios productos de Helpcom.

Documento y software en versión preliminar.

Obtener

  • SFTP Helpcom
  • Repositorio Chiselapp
  • Copia local en el .0.200.

FIXME Pendiente Publicar

Prerequisitos

  • Equipo con Linux o Windows.
  • Soporte para Python 2.7.
    • En Debian 8 en adelante viene por defecto, pero debe verificarse en la distribución la diferencia entre instalar python y python2.
    • En Windows XP instalar Python <= 2.7.9; versiones posteriores sólo funcionan con Windows 7.
  • Soporte para los siguientes paquetes de Python: subprocess, configparser, mysql, tailer.
  • Soporte para las herramientas MySQL client: mysql y mysqldump al menos.
    • De ser posible estas herramientas deben encontrarse en el $PATH.

Uso

Para utilizar el script es necesario preparar un archivo .ini con la información que describe qué base de datos se va a extraer y de dónde. Este archivo tiene el nombre por defecto respaldar.ini pero se puede tener cualesquiera archivos ini con nombres; el programa toma como argumento qué ini procesar.

La sección Archivo ini muestra un ejemplo de archivo de configuración.

Para ejecutar el respaldo se invoca el script de respaldo respaldar.py con python, pasando como argumento el nombre del archivo .ini que deseamos procesar:

usuario@equipo $ python respaldar.py prueba.ini

Si todo sale correcto, podemos ver un archivo resultante con extensión .sql el cual tiene el respaldo de la base de datos. En caso de error el sistema sale con una línea “ E : ” indicando la naturaleza del error, o al menos podremos ver una salida de Exception de Python.

El nombre del archivo resultante depende de una cantidad de factores, como la plataforma y el valor de la variable name. En general, el nombre resultante de archivo será en uno de los dos formatos que siguen:

{host}:{port}-{db}.sql    
respdb-{name}.sql         

Archivo ini

prueba.ini
# Información de la conexión
host=192.168.1.100
port=3306
user=usuario
pass=password
# Información del respaldo
db=temp
name=prueba
Variables obligatorias
host IP, FQDN u otro nombre calificado del servidor a conectar.
port Puerto.
user, pass Credenciales de la cuenta para sacar el respaldo.
db Nombre de la base de datos.
Variables opcionales
name Un nombre ficticio usado para describir el respaldo.
Permite generar un nombre de archivo más sencillo, como respdb-name.sql .
mysqldump Ruta y nombre del ejecutable de mysqldump,
si no está disponible en el $PATH o en el mismo directorio.
options Si esta variable existe, el valor literal se copia como más opciones a mysqldump.
Por ejemplo para poder poner las opciones --compatible=..., --verbose, o similar.
verification Si esta variable está presente, el script presenta mensajes y peticiones de verificación de las configuraciones del respaldo y de las operaciones a realizar, de modo de ayudar a detectar errores.
log-error Si esta variable está presente, se usa el valor para crear un archivo de registro de error de mysqldump, por ejemplo log-error=errores.txt.
pause Si esta variable está presente, el script se detiene al final para dar el tiempo al usuario de ver la pantalla con la información del proceso.

Entorno Gráfico

El script va acompañado de dos archivos que son lanzadores en modo gráfico: mientras estén en el mismo directorio que el script original respaldar.py, basta con arrastrar y soltar un archivo .ini a este lanzador gráfico:

  • argv1.bat: Lanzador gráfico para Windows, lanza la ventana de CMD que permite tomar el ini y lanzar la aplicación.
  • argv1.desktop: Lanzador gráfico para Linux, lanza la ventana de terminal y permite asignar a un menú o botón del panel.

Notas

Instalar Python

Para instalar Python en sí en un equipo depende de la configuración del sistema operativo:

  • Linux: Python 2.7 ya viene nativo. Verificar con python --version.
  • Windows: Instalar una de varias alternativas: Python for Windows, Cygwin con Python, WinPython, Active Python, etc.
    • Windows XP: La última versión de Python for Windows soportada en Windows XP es 2.7.9.

Dependencias

Para instalar los módulos de python que se necesitan como dependencias debiera bastar con los siguientes comandos:

pip install configparser
pip install subprocess
pip install StringIO
pip install tailer

Instalar Cliente MySQL

Para ejecutar correctamente el script asume que es posible encontrar las aplicaciones de MySQL en el $PATH, ya sea en Windows o en Linux. Si éste no fuera el caso es posible hacer una de dos cosas:

  • Copiar los ejecutables de mysqldump y las librerías que requiere en la misma carpeta que el programa de respaldos.
  • Utilizar la variable mysqldump en el archivo.ini para poder apuntar a la ruta donde se encuentra el programa.

Ejemplo: Instalar en Linux

  1. Descomprimir nuestro programa de respaldo en una carpeta, por ejemplo respdb.
  2. En el gestor de paquetes instalar las herramientas de MySQL Client y Python pip.
    Por ejemplo en Debian: apt-get install mysql-client mysql-utilities python2 python-pip.
  3. …¡Listo! Linux es así de fácil.

Ejemplo: Instalar en Windows XP

  1. Descomprimir nuestro programa de respaldo en una carpeta, por ejemplo respdb.
  2. Instalar Python for Windows 2.7.9 desde algunas de las fuentes indicadas arriba.
  3. En las opciones de instalación asegurarse que están seleccionados todos los script (FIXME TOBEDONE agregar foto)
  4. Instalar las herramientas de consola de MySQL desde un instalador de Mysql Server o de un MySQL Community Wizard.
  5. Abrir una consola de CMD y llevar la terminal al directorio del entorno de Python (1)
  6. Ejecutar pip.exe para instalar los componentes y dependencias en el entorno (2)
  7. Si el equipo no tiene las herramientas de MySQL agregadas en el %PATH%,
    copiar los siguientes archivos a la misma carpeta: (3)

1:

1
rem cambiar la ruta de Python por la que se usó al instalar el sistema
C:
cd \Python27\Tools

2:

2
pip.exe install configparser

3:

mysqldump.exe
mysql.exe
libmysql.dll

Dependencias Python Directo desde Python

Se puede invocar directamente desde la consola de Python (Linux o Windows) como se puede ver en (1):

>>> import pip
>>> pip.main(['install', 'configparser'])

Ejemplo:

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pip
>>> pip.main(['install', 'configparser'])
Downloading/unpacking configparser
  Downloading configparser-3.5.0.tar.gz
  Running setup.py 

Installing collected packages: configparser
  Running setup.py install for configparser

    Installing C:\Python27\Lib\site-packages\configparser-3.5.0-py2.7-nspkg.pth
Successfully installed configparser
Cleaning up...
0
>>>

Para Python en Cygwin es posible utilizar los ejemplos en (2).

f1/respaldarv2.1540407755.txt.gz · Última modificación: 2018/10/24 19:02 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0