Servidores:hanzo:mantenimiento

De Wiki
Saltar a: navegación, buscar
Mantenimiento habitual

Migrar versión de SIU-Pilagá

Si bien existe un procedimiento general para migrar la versión actual de SIU-Pilaga, este procedimiento tiende a variar con algunas nuevas versiones del sistema. Afortunadamente, el SIU siempre provee con sus nuevas versiones un instructivo a seguir, por lo que siempre se recomienda seguir comparar cada nuevo instructivo con el procedimiento actual.

Dicho esto, el procedimiento que aquí se detalla tiene un par de ventajas con respecto al sugerido por el SIU, por lo que se recomienda tomar los pasos que aquí se detallan como primera aproximación.

Paso 1: Obtener la nueva versión y preparar los directorios

Descargar la nueva versión del SIU-Pilagá, y descomprimirla en un directorio cualquiera. Luego, realizar los siguientes pasos:

 * Eliminar el directorio /SIU-Pilaga-viejo
 * Renombrar el directorio /SIU-Pilaga a /SIU-Pilaga-viejo
 * Mover el directorio SIU-Pilaga  a la carpeta /SIU-Pilaga

Notar que tanto estos pasos como los próximos asumen que el código del sistema está almacenado en el directorio /SIU-Pilaga.

Paso 2: Exportar archivos

Ahora es momento de exportar los archivos del viejo SIU-Pilaga. Para ello, debemos cargar las variables de entorno adecuadas, las cuales se encuentran el el archivo /entorno_viejo.sh. Las cargamos con el comando cd / . entorno_viejo.sh

Habiendo exportado el código, exportamos el código con el comando toba proyecto exportar -p pilaga

Paso 3: Copiar los archivos al nuevo directorio

Ahora que ya tenemos todos los archivos necesarios, procedemos a unificarlos en la nueva versión, copiándolos del directorio /SIU-Pilaga-viejo al directorio /SIU-Pilaga.

Esquema de backup

Congelamiento de fechas

El congelamiento actual de las fechas del servidor se realiza en dos pasos: un script que deduce la hora que debe fijarse, y una configuración en CRON que llame al script cada un cierto intervalo.

El comando de CRON que llama al script es el siguiente. Se ejecuta en el minuto 0 (es decir, una vez por hora), y lleva como parámetro la hora que se debe fijar en el sistema:0 * * * * /root/scripts/hora/hora.pl 113012002010 Este comando fija la fecha actual (si se encuentra dentro de las horas que deben respetarse) al 30 de Noviembre de 2010, 12:00 hs.

El script, por otra parte, es un script en Perl que toma como argumento la hora que debe mantenerse. El código del mismo es:

  1. !/usr/bin/perl

use Net::NTP; my $RT = "Receive Timestamp"; my %response = get_ntp_response('ntp.unc.edu.ar'); my $hora_nueva;

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($response{$RT});

  1. El -1 es por falta de coordinacion con el servidor

if(($hour-1 == 12 && min >= 30) || $hour-1 >12) { $hora_nueva = $ARGV[0],"\n"; } else { $hora_nueva = sprintf("%02d%02d%02d%02d%04d\n",$mon+1,$mday,$hour-1,$min,$year+1900); } system("date $hora_nueva");

Otra cosa útil sobre las fechas y horas es: por ejemplo en una época dijeron que lunes, miércoles, jueves y viernes de 11 a 15:30 el servidor debería tener fecha del mes anterior, para terminar de hacer transacciones y en los restantes días y horarios debía tener la fecha y hora actual


Por lo tanto hice este script hay que tener instalado net de perl, puse aptitude net, y apareció. Notar que cambie la fecha no la hora, porque si no se ejecuta el script a la hora que corresponde.

  1. !/usr/bin/perl

use Net::NTP;

my $RT = "Receive Timestamp";

my %response = get_ntp_response('ntp.unc.edu.ar');

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isddst) = localtime($response{$RT});

my $hora_actual = sprintf("%02d%02d%02d%02d%04d\n",$mon+1,$mday,$hour,$min,$year+1900);

my $day_of_week = $wday;

if(($day_of_week==1 || $day_of_week==3 || $day_of_week==4 || $day_of_week==5)){

   if(($hour==14 && $min<=10) ||($hour>=11 && $hour<14)){
       system("date --set '2011-01-31 12:21:42'"); #CAMBIO LA HORA DEL SISTEMA
   }

} else{

       system("date $hora_actual");

}

Cambiando los permisos de toba

Es necesario poner estos permisos para que la aplicacion ande y no corra riesgos de tener permisos de escritura y/o ejecusion donde no debe parado en toba_x.x

find /path/to/chmod -type d | xargs chmod -v 755 {} \;

find /path/to/chmod -type f | xargs chmod -v 644 {} \;

chmod -R 777 bin/

a veces no estan los directorios "logs" por lo tanto hay que crearlos y darles permisos 777