SIVeL 1.1 es multisitio es decir en el mismo directorio de fuentes pueden configurarse diversas instancias de SIVeL cada una con su base de datos. Esto facilita la actualización de las fuentes.
Como las operaciones que se presentan a continuación deben realizarse desde una terminal con un interprete de comandos, recomendamos que lea al respecto (ver por ejemplo [basico_OpenBSD]) y que conozca la ubicación de las fuentes de SIVeL y del sitio o sitios que maneje. Por ejemplo en adJ las fuentes de SIVeL estarán en /var/www/htdocs/sivel, el sitio por defecto será sitios/sivel (o con ruta completa /var/www/htdocs/sivel/sitios/sivel).
Hay varias herramientas relacionadas con copias de respaldo que el administrador ejecuta desde una terminal en el directorio de un sitio (digamos sitios/sivel):
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 OpenBSD adJ está cifrado.
Aviso |
Los volcados generados con bin/pgdump.sh incluyen las fuentes de información. Debe mantenerlos cifrados 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 cifrados 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.miong.org:copiascifradas/. 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 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/htdocs/sivel/sitios/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 o con bin/copiadvd.sh. Antes de efectuar este procedimiento saque un volcado de la base que tenga.
Realiza las operaciones de respaldo de cada uno de los sitios (es decir ejecuta ../../bin/respaldo.sh desde cada uno de los sitios configurados).
Que quema un CD o un DVD con el contenedor cifrado (por defecto /var/resbase.img o el que se especifique en la variable IMAGENRLOCAL de confv.empty y por tanto confv.sh). El archivo de comandos bin/importacd.sh permite recuperar uno de los volcados almacenados en una copia de respaldo generada con esta herramienta.
Si no tiene una instalación de adJ estándar ajuste variables relacionadas con volcados en el archivo conf.php de su sitio, en particular la variable rlocal que debe indicar 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/htdocs/sivel/sitios/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.
Saque una copia de respaldo de la base del sitio donde restaurará. Por ejemplo empleando rutas y sitio por defecto:
cd /var/www/htdocs/sivel/sitios/sivel ../../bin/pgdump.sh
Ponga el CD o el DVD con la copia de respaldo generada con bin/copiacd.sh o con bin/copiadvd.sh.
Ubiquese en el directorio del sitio en el que restaurará la base y ejecute importacd. Por ejemplo empleando las rutas y sitios por defecto:
cd /var/www/htdocs/sivel/sitios/sivel ../../bin/importacd.sh
Siga las instrucciones y cuando le presente los volcados disponibles eliga el más reciente cuyo tamaño no sea 0.
Pruebe los datos que restauró.
Se recomienda que configure ejecución diaria de bin/resptodositio.sh. Esto se hace por defecto en OpenBSD adJ con una tarea cron a las 12:00M.
Si desea verificar la tarea cron o configurarla en un sistema tipo Unix, desde la cuenta que administra SIVeL en una terminal ejecute:
crontab -eEsto le permitirá editar un archivo al cual debe añadir una línea, guardarlo y salir. La línea es:
0 12 * * * cd /var/www/htdocs/sivel/ ; sudo rm /tmp/respaldo-*; ./bin/resptodositio.sh > /tmp/respaldo-stdout 2> /tmp/respaldo-stderrque indica ejecución de 3 ordenes todos los días del mes a las 12:00M. Es recomendable que pruebe las 3 ordenes programadas ejecutando desde la línea de comandos y como el usuario al cual programa la tarea:
cd /var/www/htdocs/sivel/ sudo rm /tmp/respaldo-* ./bin/resptodositio.sh > /tmp/respaldo-stdout 2> /tmp/respaldo-stderrTras ejecutarlas deben crearse volcados en /var/www/resbase y transmitirse volcados si lo configuró. Si no opera como esperaba revise los archivos /tmp/respaldo-stdout y /tmp/respaldo-stderr.
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.miong.org. 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 cifrada), por ejemplo /var/www/resbase.
En la instalación fuente como usuario administrador de SIVeL ejecute:
cd /var/www/htdocs/sivel/sitios/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/htdocs/sivel/sitios/sivel ../../bin/pgdump.sh ../../bin/pubweb.sh
Pruebe el nuevo sitio. También puede realizar algunas operaciones de verificación como contar cantidad de registros en cada tabla en fuente y en destino (ver siguiente sección).
Puede administrar usuarios desde la línea de comandos en el directorio de un sitio con:
Para agregar un usuario. Al ejecutarlo podrá ingresar toda la información requerida.
Para eliminar el usuario juan.
Para contar los registros de las tablas de la base empleada por su sitio:
cd /var/www/htdocs/sivel/sitios/sivel ../../bin/cuenta.sh
Puede familiarizarse más con la estructura de la base de datos documentanda en este manual y explorarla con comandos SQL (con cuidado) desde una interfaz interactiva plana que inicia desde el directorio de su sitio con:
cd /var/www/htdocs/sivel/sitios/sivel ../../bin/psql.shPor ejemplo para examinar las cuentas y condensados SHA de claves ejecute allí:
SELECT id_usuario, password FROM usuario;Si por ejemplo olvida la clave del usuario juan puede ponerle la clave noolvidar así:
UPDATE usuario SET password='1e6d8c848f4c51b9e01e5512ac4ae413de3e1840';
Desde esa interfaz puede realizar otras operaciones SQL como borrar, un ejemplo para eliminar acciones bélicas se incluye en un archivo de comandos que puede ejecutar así:
cd /var/www/htdocs/sivel/sitios/sivel ../../bin/elim-belicas.shEse archivo de comandos a su vez emplea bin/elimcomun.sh, que facilita eliminar los casos incluidos en una vista.
La información complementada por un usuario en el formulario que se ve tras oprimir el botón 'Comente Caso', será cifrada 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 cifrado. Especificada en el archivo conf.sh de su sitio como PALABRA_SITIO.
Aviso |
Cambie una sola vez la llave de cifrado que se distribuye con SIVeL. |
Cuenta de correo que recibirá la información cifrada. Especificada en el archivo conf.sh del sitio en la variable receptor_correo.
El adjunto puede guardarse en un archivo, digamos /tmp/cifrado, y si la llave de cifrado fuera la cadena `La llave', podría descifrarse y guardarse en el archivo /tmp/descif con:
openssl bf -nosalt -d -in /tmp/cifrado -out /tmp/descif -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/cifrado y después descifrarse 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/htdocs/sivel, se emplearía así:
cd /var/www/htdocs/sivel php herram/hex2bin.php < /tmp/hex > /tmp/cifrado
Dado que SIVeL 1.1 es multisitio es posible sobre una misma instalación de fuentes, configurar diversos sitios cada uno con su URL, autenticación y base de datos únicos.
Para agregar un nuevo sitio (digamos sivelmb) en una términal ubiquese en las fuentes de SIVeL ejecutando:
cd /var/www/htdocs/sivel/sitios ./nuevo.sh sivelmba continuación agregue un punto de entrada en el servidor web, por ejemplo para ingresar desde el servidor con la URL https://127.0.0.1/sivelmb/, si las fuentes de SIVeL están en /var/www/htdocs/sivel agregué a la sección de Alias de /var/www/conf/httpd.conf. Puede editar el archivo de configuracion con:
sudo xfw /var/www/conf/httpd.confBusque la palabra "Alias" y agregue:
Alias /sivelmb/ "/var/www/htdocs/sivel"y reinicie el servidor web desde una terminal con:
sudo apachectl stop sudo sh /etc/rc.local
Después cree un enlace que permita redireccionar a su nuevo sitio, para determinar el nombre del enlace convierta los símbolos '/' del URL a '_' y páselo a mayúsculas o aún más sencillo intente ingresar al URL donde debe ver un mensaje que incluirá instrucciones para crear el enlace. Para este ejemplo desde el directorio sitios ejecute:
ln -s sivelmb 127.0.0.1_SIVELMB