¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Respaldarv2 es un script de respaldos para bases de datos de MySQL, para varios productos de Helpcom.
Obtener
- SFTP Helpcom
- Repositorio Chiselapp
- Copia local en el .0.200.
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
ypython2
. - 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
ymysqldump
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
- Descomprimir nuestro programa de respaldo en una carpeta, por ejemplo
respdb
. - 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
. - …¡Listo! Linux es así de fácil.
Ejemplo: Instalar en Windows XP
- Descomprimir nuestro programa de respaldo en una carpeta, por ejemplo
respdb
. - Instalar Python for Windows 2.7.9 desde algunas de las fuentes indicadas arriba.
- En las opciones de instalación asegurarse que están seleccionados todos los script (
TOBEDONE agregar foto)
- Instalar las herramientas de consola de MySQL desde un instalador de Mysql Server o de un MySQL Community Wizard.
- Abrir una consola de CMD y llevar la terminal al directorio del entorno de Python (1)
- Ejecutar
pip.exe
para instalar los componentes y dependencias en el entorno (2) - 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).