Hay varias herramientas relacionadas con copias de respaldo:
Saca volcado de la base (i.e un volcado es un archivo con instrucciones SQL para reconstruir la base completa), lo almacena junto con los del último mes en el directorio de respaldo configurado --por defecto es /var/www/resbase que en adJ está encriptado.
Aviso |
Los volcados generados con bin/pgdump.sh incluyen las fuentes de información. Debe mantenerlos encriptados y con permisos que no permitan lectura por parte de usuarios que no administren. |
Almacena volcado junto con los de última semana y opcionalmente lo copia de forma segura (con ssh) a otro(s) computador(es).
Aviso |
Las copias de envíe manténgalas en directorios encriptados en los computadores donde lleguen. |
Especifique cada computador destino y usuario en la variable $rremotos separandolos con espacio, por ejemplo un sólo destino sería jaime@miservidor.cc.cc:copiasencriptadas/. Para que pueda hacer automático el copiado, genere un par de llaves RSA sin clave con ssh-keygen, configure la llave privada en la variable $llave y agregue la llave pública en el archivo ~/.ssh/authorized_keys de la cuenta a la que enviará las copias.
Que quema un CD con el contenedor encriptado (por defecto /var/resbase.img) del directorio de respaldos.
Que permite restaurar un volcado SQL de la base de datos. Por ejemplo si el volcado está ubicado en /mnt/usb/volcado.sql para incluirlo en la base basta:
cd /var/www/users/sivel bin/restaura.sh /mnt/usb/volcado.sqlEl volcado puede estar comprimido con gzip.
Aviso |
Los volcados generados con bin/pgdump.sh incluyen instrucciones para borrar las tablas existentes antes de insertar los registros volcados. Es decir al restaurarlos borran la información que hubiera en la base. |
cp /var/www/resbase/sivel-dump-22.sql.gz /tmp/volcado.sql.gz gzip -d /tmp/volcado.sql.gzSi requiere editar un volcado para eliminar las líneas que borran las tablas (i.e las de la forma DROP TABLE) puede emplear:
grep -v "DROP TABLE" /tmp/volcado.sql > /tmp/volcadosindrops.sqlPara ver brevemente las diferencias entre 2 volcados puede emplear:
diff /tmp/volcado.sql /tmp/volcadosindrops.sql | less
Que intenta restaurar la base de datos de un volcado posiblemente incluido en un CD quemado con bin/copiacd.sh. Antes de efectuar este procedimiento saque un volcado de la base que tenga.
Permite respaldar y mover sistema de información a nueva nueva ubicación en un sistema OpenBSD adJ (copia de base de datos, copia de fuentes y nuevo URL). Las operaciones que realiza son:
Saca un volcado de la base que deja en /var/www/resbase (o el directorio configurado para copias de respaldo en su archivo aut/conf.php) con un nombre de la forma movido-sivel-dump-26.sql.gz y saca una copia de las fuentes en PHP que deja en /var/www/resbase/fuentes10-sivel.tar.gz
Copia la base de PostgreSQL (por defecto sivel) en una nueva base de nombre sivel10 con el mismo usuario ante PostgreSQL.
Copia las fuentes en PHP al directorio /var/www/htdocs/sivel10
Crea un Alias para el servidor web que le permite ingresar a la base movida en el URL /sivel10/; por ejemplo desde el mismo servidor en https://127.0.0.1/sivel10/ y después reiniciar Apache.
Prueba el nuevo URL con el navegador lynx.
Si usted acepta elimina las fuentes del directorio donde estaban haga esto sólo después de verificar que sus datos están completos en la nueva ubicación
bin/mueve.sh sivelcopia /var/www/users/sivelc
Si no tiene una instalación de adJ estándar ajuste variables relacionadas con volcados en aut/conf.php, en particular la variable rlocal que debe tener el directorio en el que quedarán los volcados generados con bin/pgdump.sh.
Para sacar un volcado comprimido de la base, desde un interprete de comandos:
$ cd /var/www/users/sivel $ bin/pgdump.shAl ejecutarlo se generará un archivo de la forma /var/www/resbase/sivel-dump-08.sql.gz, en lugar de /var/www/resbase/ el directorio que haya configurado y en lugar de 08 el día del mes.
Suponemos que tiene una segunda instalación de SIVeL --preferiblemente en un computador diferente al de la base principal-- para consulta pública por el web de los datos públicos (i.e sin fuentes). Para actualizar esa segunda instalación debe:
En la instalación fuente asegúrese de configurar computador destino en la variable $maquinaweb, por ejemplo miservidor.cc.cc. El usuario destino en $usuarioact y el directorio donde quedará un volcado en el destino (la información que llegará a este directorio no incluye fuentes por lo que no requiere estar encriptado), por ejemplo /var/www/resbase.
En la instalación fuente como usuario administrador de SIVeL ejecute:
cd /var/www/users/sivel bin/actweb.shEste script generará un volcado, del cual eliminará las fuentes y enviará el volcado resultante con scp al destino configurado con un nombre de la forma web-sf-sinf-22.sql.gz.
Ingrese al servidor destino y ejecute:
cd /var/www/users/sivel bin/pgdump.sh bin/pubweb.sh
La información complementada por un usuario en el formulario que se ve tras oprimir el botón 'Comente Caso', será encriptada y enviada a una cuenta de correo.
Hay 3 aspectos por configurar:
Ubicación del programa openssl. Que típicamente será ubicado por el script bin/prep-chroot.sh en el directorio /var/www/usr/sbin/ y autodetectado o especificado en el momento de la configuración con conf.sh
Llave de encripción. Especificada en el archivo aut/conf.sh como PALABRA_SITIO.
Aviso |
Cambie la llave de encripción que se distribuye con SIVeL. |
Cuenta de correo que recibirá la información encriptada. Especificada en el archivo aut/conf.sh variable receptor_correo.
El adjunto puede guardarse en un archivo, digamos /tmp/encriptado, y si la llave de encripción fuera la cadena La llave, podría desencriptarse y guardarse en el archivo /tmp/desenc con:
openssl bf -nosalt -d -in /tmp/encri -out /tmp/desenc -k "La llave"
El mensaje en hexadecimal primero tendría que salvarse en un archivo, digamos /tmp/hex, pasarse a binario, digamos al archivo /tmp/encriptado y después desencriptarse como se explicó en el párrafo anterior. Para convertir de hexadecimal a binario podría emplear el script herram/hex2bin.php distribuido con las fuentes de SIVeL, que de estar ubicadas en /var/www/users/sivel, se emplearía así:
cd /var/www/users/sivel php herram/hex2bin.php < /tmp/hex > /tmp/encriptado