Jul 012013
 

Hemos actualizado el script de backup para GNUPanel, practicamente es el mismo script solo que le hemos agregado la posibilidad de al momento de restaurar cambiar la IP

Para instalarlo los pasos son los mismos que los explicados en el articulo original y la nueva versión del script se encuentra aquí

En este articulo explicaremos las variables de configuración para la nueva versión

El archivo de configuración es el siguiente /etc/gnupanel/gnupanel-backup.conf y tiene el siguiente contenido

##LOG_FILE=/var/log/gnupanel-backup.sh.log
##ERR_FILE=/var/log/gnupanel-backup.sh.err
LOG_FILE=/dev/stdout
ERR_FILE=/dev/stderr

DIRS="/etc /var/log /var/www /var/spool/squirrelmail /var/lib/squirrelmail /var/mail/correos /var/lib/mailman/archives /var/lib/mailman/data /var/lib/mailman/lists /var/lib/awstats" #UBUNTU
EXTRA_DIRS="/home /root /usr/local/bin"

PG_VERSION=9.1

FTP_USER=ftpuser
FTP_PASSWORD=ftppassword
FTP_SERVER=192.168.1.50

LOCAL_DIR_BACKUP=/var/backups/gnupanel-backups
LOCAL_DIR_RESTORE=/var/backups/gnupanel-restore

REMOVE_OLDER=7D
VOLSIZE=100
DAY_FULL=7

DUPLICITY_GPG_PASSPHRASE=change_for_random_string

DROP_LOCAL_DIR_BACKUP=no

CHANGE_IP=""

COMMAND_BEFORE_BACKUP=""
COMMAND_AFTER_BACKUP=""

Ahora veremos cada una de las variables

LOG_FILE y ERR_FILE son para guardar la salida standard y la salida de error, si queremos que la salida sea por consola debemos usar /dev/stdout y /dev/stderr

##LOG_FILE=/var/log/gnupanel-backup.sh.log
##ERR_FILE=/var/log/gnupanel-backup.sh.err
LOG_FILE=/dev/stdout
ERR_FILE=/dev/stderr

DIRS: son los directorios de GNUPanel que se van a respaldar, no se debería modificar
EXTRA_DIRS: Si queremos que se haga backup de otros directorios además de los de GNUPanel

DIRS="/etc /var/log /var/www /var/spool/squirrelmail /var/lib/squirrelmail /var/mail/correos /var/lib/mailman/archives /var/lib/mailman/data /var/lib/mailman/lists /var/lib/awstats" #UBUNTU
EXTRA_DIRS="/home /root /usr/local/bin"

PG_VERSION: La versión de postgresql que tengamos instalada típicamente 8.1, 8.3, 8.4, 9.1

PG_VERSION=9.1

FTP_USER: Usuario FTP
FTP_PASSWORD: Contraseña FTP
FTP_SERVER: Dirección FTP

FTP_USER=ftpuser
FTP_PASSWORD=ftppassword
FTP_SERVER=192.168.1.50

LOCAL_DIR_BACKUP: Directorio local donde se copiaran los archivos antes de ser subidos al servidor FTP
LOCAL_DIR_RESTORE: Directorio local donde se copiaran los archivos desde el FTP antes de hacer el restore.

LOCAL_DIR_BACKUP=/var/backups/gnupanel-backups
LOCAL_DIR_RESTORE=/var/backups/gnupanel-restore

Estos cuatro parámetros son para el duplicity
REMOVE_OLDER: Eliminar todos grupos de respaldo mayor que el tiempo dado.
VOLSIZE: Cambiar el tamaño del volumen en Mb.
DAY_FULL: Duplicity hace un backup incremental, este valor indica que día de la semana realiza un backup completo, valores posibles de 1, 2, 3, 4, 5, 6, 7
DUPLICITY_GPG_PASSPHRASE: Duplicity encripta los datos que se envían al FTP, esta es la contraseña que se usa para esa encriptación.

REMOVE_OLDER=7D
VOLSIZE=100
DAY_FULL=7

DUPLICITY_GPG_PASSPHRASE=change_for_random_string

DROP_LOCAL_DIR_BACKUP: “yes” borra el directorio LOCAL_DIR_BACKUP una vez subido al FTP.

DROP_LOCAL_DIR_BACKUP=no

CHANGE_IP: Esta variable se utiliza en el momento de restaurar, si no cambiamos la IP debe quedar vacía y en el caso que necesitemos cambiar la IP el formato es el siguiente

CHANGE_IP="OLD_IP;NEW_IP"

En el caso que el servidor tenga varias IPs seria de la siguiente manera

CHANGE_IP="OLD_IP1;NEW_IP1 OLD_IP2;NEW_IP2 OLD_IP3;NEW_IP3"

En el caso que necesitemos ejecutar algún comando antes y/o después de realizar el backup tenemos las variables COMMAND_BEFORE_BACKUP y COMMAND_AFTER_BACKUP

COMMAND_BEFORE_BACKUP=""
COMMAND_AFTER_BACKUP=""

Con esto finalizamos el articulo.

  37 Responses to “Script de backup y restore para GNUPanel Nueva version”

  1. Genial, ahora voy a terminar mi formula de secundario y luego la posteo. Gracias.

  2. root@ns1:~# gnupanel-backup.sh
    BEGIN backup PostgreSQL
    END backup PostgreSQL
    BEGIN backup MySQL
    mysqldump: Got error: 1045: Access denied for user ‘root’@’localhost’ (using password: YES) when trying to connect
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
    END backup MySQL
    Sabes de ese error de mysql?

    Gracias.

  3. Vale gracias.

  4. Me ayudas en esto:

    rsync: link_stat «/var/lib/dbconfig-common» failed: No such file or directory (2)
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1060) [sender=3.0.7]

    ncftpls: cannot open xxx.xx.xxx.xx: username and/or password was not accepted for login.
    Running ‘ncftpls -f /tmp/duplicity-Mn_4MQ-tempdir/mkstemp-FWn_a_-1 -F -t 30 -o useCLNT=0,useHELP_SITE=0 -l ‘ftp://xxx.xx.xxx.xx/gnupanel/» failed (attempt #1)

    Giving up trying to execute ‘ncftpls -f /tmp/duplicity-Mn_4MQ-tempdir/mkstemp-FWn_a_-1 -F -t 30 -o useCLNT=0,useHELP_SITE=0 -l ‘ftp://xxx.xx.xxx.xx/gnupanel/» after 5 attempts
    BackendException: Error running ‘ncftpls -f /tmp/duplicity-Mn_4MQ-tempdir/mkstemp-FWn_a_-1 -F -t 30 -o useCLNT=0,useHELP_SITE=0 -l ‘ftp://xxx.xx.xxx.xx/gnupanel/»
    N

    Gracias.

    • El error de rsync lo solucionas quitando de la variable DIRS en /etc/gnupanel/gnupanel-backup.conf el directorio /var/lib/dbconfig-common,

      El error del ncftp fijate que puedas ingresar al ftp que configuraste

      FTP_USER=usuario_ftp
      FTP_PASSWORD=password_ftp
      FTP_SERVER=direccion_ftp

      Saludos.

  5. Estoy usando el usuario root para ftp y si tiene acceso desde fuera pero por sftp

  6. unsupportedbackendscheme: scheme not supported in url sftp
    Y con ftp no me conecta.

  7. Lo que puede ser, es que yo uso otro puerto ssh para evitar ataques, hay alguna forma de indicarle que use otro puerto?

  8. Host key authenticity could not be verified (missing known_hosts entry?)
    Running ‘sftp -oPort=1025 -oServerAliveInterval=15 -oServerAliveCountMax=1 root@xxx.xxx.xxx.xxx‘ failed (attempt #1)

    gnupanel-backup.conf
    lo deje asi:
    FTP_SERVER=xxx.xxx.xxx.xxx:1025
    Pero aun me da error y no entra.

  9. No hay caso, cuando el servidor esta recién instalado solo tiene el root este solo conecta por ssh (da igual el puerto), de esa forma no hay caso que conecte probé de todas formas posibles.

    Si en el servidor secundario creo la primera cuenta reseller y uso los datos ftp de esa cuenta reseller si sube los archivos al respaldo pero en la carpeta del usuario reseller, luego no levanta desde ahí el backup, no hay forma de hacerlo y aun que lo levante el server ya tiene el reseller ingresado y según la guía no debe ingresarse, estoy a punto de rendirme con este método, snif.

  10. Si intente eso y si funciona sin problemas, que raro.

  11. No habría alguna forma de hacer el envío por rsync o usando otro medio, probé con varios servidores y en todos tengo el mismo problema.

  12. Escribí en el otro me equivoque de ventana, ya lo tengo de esta forma:
    Con el script publicado genero los respaldos de las bd, luego envío al otro servidor usando solo rsync las bd y todos los directorios que usa GNUPanel (a lo mejor me falto algún directorio estoy revisando eso me falta). Después de eso cambio las ip con el script de los directorios y de los respaldos de las bd, luego con el script publicado levanto las bd, los directorios ya los clone con rsync no necesito mover nada mas, después reinicio y queda todo funcionando con la nueva ip en el nuevo servidor. Todo eso mediante cron se genera automático y puedo generar respaldos cada x tiempo queda muy bien.

    Solo me faltaba lo de levantar las bd pero ya di con editar el script que solo use eso.

    Si me pudieras ayudar con los directorios completos donde escribe gnupanel así podría clonar solo esos directorios y podría terminarlo.

    Hasta aquí así me funciona muy bien y solo necesito instalar el script de respaldo y rsync para mí fue más sencillo, pero claro que no se si será la mejor opción pero funciona.

    Gracias.

  13. Finalmente logre todo el backup completo sin ningún error y tal como yo quería, el único inconveniente fue el tema del login pero usando rsync no da problemas, pondré los pasos como lo logre y lo que modifique en el foro para ver si alguien le sirve y le agrega algo más.

    Gracias.

  14. Hola, estaba ya terminando esto en completo me puse a revisar todo y a crear los archivos para hacerlo automático, revisando me di cuenta que solo queda un error, no crea las bases de datos postgresql desde el panel del usuario, dice: No es posible conectarse con la base de datos

    Revise /etc/gnupanel/gnupanel-usuarios-ini.php y tiene la clave con la que puedo entrar por /phppgadmin

    Hay algún otro archivo que mantenga esas claves, la verdad revise en todo lugar donde podría estar esa clave mal puesta y no encuentro tal error, siempre que da ese error es esa clave que está cambiada pero ahora después de levantar el backup no toma nada.

    Gracias.

    • Hola,

      En el archivo /usr/share/gnupanel/usuarios/gnupanel-usuarios.php

      en la linea 46 comenta donde dice error_reporting(0);

      Luego mientras creas la base de datos haz un tail del archivo /var/log/apache2/error.log

      tail -f -n 0 /var/log/apache2/error.log

      y fijate si ahi obtienes alguna pista.

      Saludos.

  15. Hola, me das una manito.
    Al comentar lo del reporte salen montones de errores en cada lado del panel.
    Esto pasa con Wheezy

    Al intentar crear la bd postgre me salen estos errores:

    PHP Notice: Undefined variable: conexion_sesion in /etc/gnupanel/gnupanel-usuarios-ini.php on line 54, referer: http://midominio/panel/gnupanel-usuarios.php?seccion=basesdatos&plugin=agregar_base_datos
    PHP Notice: A session had already been started – ignoring session_start() in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 61, referer: http://midominio/panel/gnupanel-usuarios.php?seccion=basesdatos&plugin=agregar_base_datos
    PHP Notice: Undefined index: desloguear in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 76, referer: http://midominio/panel/gnupanel-usuarios.php?seccion=basesdatos&plugin=agregar_base_datos
    PHP Notice: Undefined variable: checkeo in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 1919, referer: http://midominio/panel/gnupanel-usuarios.php?seccion=basesdatos&plugin=agregar_base_datos

    ——————————————————————————————————————–

    Y estos errores salen incluso solo al entrar al panel.

    PHP Notice: Undefined variable: conexion_sesion in /etc/gnupanel/gnupanel-usuarios-ini.php on line 54, referer: http://midominio/panel/
    PHP Notice: A session had already been started – ignoring session_start() in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 61, referer: http://midominio/panel/
    PHP Notice: Undefined index: id_usuario in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 2289, referer: http://midominio/panel/
    PHP Notice: Undefined index: logueado in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 2290, referer: http://midominio/panel/
    PHP Notice: Undefined index: desloguear in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 76, referer: http://midominio/panel/
    PHP Notice: Undefined index: logueado in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 78, referer: http://midominio/panel/
    PHP Notice: Undefined index: seccion in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 80, referer: http://midominio/panel/
    PHP Notice: Undefined index: plugin in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 81, referer: http://midominio/panel/
    PHP Notice: Undefined index: id_usuario in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 1848, referer: http://midominio/panel/
    PHP Notice: Undefined index: logueado in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 1849, referer: http://midominio/panel/
    PHP Notice: Undefined index: ingresando in /usr/share/gnupanel/usuarios/login/login-func.php on line 149, referer: http://midominio/panel/
    PHP Notice: Undefined index: usuario in /usr/share/gnupanel/usuarios/login/login-func.php on line 63, referer: http://midominio/panel/
    PHP Notice: Undefined index: dominio in /usr/share/gnupanel/usuarios/login/login-func.php on line 65, referer: http://midominio/panel/
    PHP Notice: Undefined variable: conexion_sesion in /etc/gnupanel/gnupanel-usuarios-ini.php on line 54, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: A session had already been started – ignoring session_start() in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 61, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: id_usuario in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 2289, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: logueado in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 2290, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: desloguear in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 76, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: logueado in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 78, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: seccion in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 80, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: plugin in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 81, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: id_usuario in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 1848, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: logueado in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 1849, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined variable: conexion_sesion in /etc/gnupanel/gnupanel-usuarios-ini.php on line 54, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: desloguear in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 76, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: seccion in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 80, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined index: plugin in /usr/share/gnupanel/usuarios/gnupanel-usuarios.php on line 81, referer: http://midominio/panel/gnupanel-usuarios.php
    PHP Notice: Undefined variable: checkeo in /usr/share/gnupanel/usuarios/funciones/funciones.php on line 1919, referer: http://midominio/panel/gnupanel-usuarios.php

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.