- Se agrega un corrector de web020 en cargas_de_datos.
- Se mejoran los mensajes para debug.
- Se borra carga de firmantes.
- Bugfixes.
- Actualizacion de README.
Directorio 'backups':
Aquí se deja un backup comprimido de cada carga diaria (antes de
procesar nada).
+
+
+Para instalar:
+ Instalar el paquete php4-cgi.
+ Luego de hacer el checkout hacer make en el directorio novedades.
+ Esto genera los links simbólicos necesarios.
+ Es necesario tener acceso sin contraseña via ssh a los servidores de DB.
+ debianutils 2.5.2, run-parts 2.2
+
echo "Haciendo backup en $targz"
files=""
for f in `ls "$datos"`; do
- nombre=`basename "$f" | awk -F\\. '{ print $1 }'`
+ nombre=`basename "$f" | awk -F- '{ print $1 }'`
files="$files $nombre"
done
cd "$origen"
echo "Comienza la carga de la base de datos" >> "$log"
echo >> "$log"
echo "Cargando y procesando archivos de datos..." >> "$log"
-run-parts --verbose --arg="$origen" --arg="$datos" --arg="$home" \
- "$home/cargas_de_datos" >> "$log" 2>&1
+run-parts --lsbsysinit --verbose --arg="$origen" --arg="$datos" \
+ --arg="$home" "$home/cargas_de_datos" >> "$log" 2>&1
echo "Procesando '$cargas'..." >> "$log" 2>&1
for dir in `ls "$cargas" | sort`; do
echo "- Cargando '$dir'..." >> "$log" 2>&1
# Script.
/bin/run-parts \
+ --lsbsysinit \
--verbose \
--arg="$host" \
--arg="$user" \
# Script.
/bin/run-parts \
+ --lsbsysinit \
--verbose \
--arg="$host" \
--arg="$user" \
+++ /dev/null
-../copia
\ No newline at end of file
+++ /dev/null
-../copia
\ No newline at end of file
--- /dev/null
+#!/usr/bin/perl -w
+
+use strict;
+
+# Recibo los parametros de la linea de comando e inicializo
+# las variables generales
+
+if(!$ARGV[0] || !$ARGV[1])
+{
+ print "No me pasaste los parametros adecuados\nuso\nweb020.pl origen destino";
+ exit;
+}
+
+my $origen=$ARGV[0];
+my $destino=$ARGV[1];
+my $arch_salida="$destino/web020";
+my $arch_entrada="$origen/web020";
+my $linea;
+my @datos_linea_anterior;
+my $contador;
+
+# Archivos de entrada y salida
+open arch_ent, "<$arch_entrada";
+open arch_sal, ">$arch_salida";
+
+# Leo el encabezado
+$linea=<arch_ent>;
+
+# Grabo el encabezado en el archivo de salida
+print arch_sal $linea;
+
+my @linea_anterior=(0,0,'nada',0);
+my @campos;
+
+# Leo la cantidad de lineas del archivo de entrada
+my $aux;
+$aux=`wc -l $arch_entrada`;
+($aux)=$aux=~/\s(\d*)\s/;
+# Bucle que recorre el archivo de entrada linea por linea
+for ($contador = $aux ;$contador > 0 ; $contador --)
+{
+ $linea=<arch_ent> unless ($contador == 1);
+ @campos=split(",",$linea);
+
+ if( $linea_anterior[0] eq $campos[0] and
+ $linea_anterior[1] eq $campos[1] and
+ $linea_anterior[2] eq $campos[2] and
+ $linea_anterior[3] eq $campos[3])
+ {
+ my $dias;
+ $dias=0;
+ foreach my $item (1..31)
+ {
+ if( $linea_anterior[3+$item] ne "00" or
+ $campos[3+$item] ne "00")
+ {
+ $campos[3+$item]="01";
+ $dias++;
+ }
+ }
+ $campos[35]=$dias;
+ }else
+ {
+ if( $linea_anterior[0] and
+ $linea_anterior[1] and
+ $linea_anterior[2])
+ {
+ print arch_sal $linea_anterior[$_]."," foreach (0..35);
+ print arch_sal "\n";
+ }else
+ {
+ if($contador < $aux)
+ {
+ my $linea_archivo;
+ $linea_archivo = $aux - $contador + 1;
+ print "Error en la linea ".$linea_archivo.": ";
+ print $linea_anterior[$_]."," foreach (0..35);
+ print "\n";
+ }
+ }
+ }
+
+ @linea_anterior=@campos;
+}
+
+print arch_sal $linea_anterior[$_]."," foreach (0..35);
+print arch_sal "\n";
+
+close arch_ent;
+close arch_sal;
+
+++ /dev/null
-#!/usr/bin/php4 -qC
-<?
-
-error_reporting(E_ALL);
-
-$origen = isset( $argv[1] ) ? $argv[1] : '.';
-$destino = isset( $argv[2] ) ? $argv[2] : '.';
-$libdir = isset( $argv[3] ) ? $argv[3] : getcwd();
-
-require_once "$libdir/corregir_lib.php";
-
-$fi = fopen( "$origen/webgen", 'r' );
-$fo = fopen( "$destino/estado", 'w' );
-$fe = fopen( 'php://stderr', 'w' );
-
-$s = fgets( $fi ); // Saca la descripción.
-fputs( $fo, "nrodoc,dependencia,estado,funcion\n" );
-$c = 1;
-while ( ( $s = fgets( $fi ) ) !== false ) {
- if ( preg_match( '/^(\d{10}),(SCA|SAS|CAS),(AD|CA|SG|SE|ME|MA|MY|PL),(\d{10}),$/', $s, $m ) ) {
- #if ( preg_match( '/^(\d{10}),([^,]+),(\d{8}),([:\d]*),([:\d]*),$/', $s, $m ) ) {
- list( $todo, $doc, $est, $func, $dep ) = $m;
- $doc = sacar_ceros( $doc );
- fputs( $fo, "$doc,$dep,$est,$func\n" );
- } else {
- fputs( $fe, "ERROR: No se pudo interpretar la fila $c: $s.\n" );
- }
- $c++;
-}
-
-?>
libdir="$3"
# Script.
-nombre_orig=`basename "$0" | awk -F\\. '{ print $1 }'`
-nombre_nuevo=`basename "$0" | awk -F\\. '{ print $2 }'`
+nombre_orig=`basename "$0" | awk -F- '{ print $1 }'`
+nombre_nuevo=`basename "$0" | awk -F- '{ print $2 }'`
if [ -z "$nombre_orig" ]; then
nombre_nuevo=`basename "$0"`
fi
home="$5"
# Script.
-echo "Procesando '$home'..."
+echo "run-sql-data-parts: Procesando '$home'..."
for file in `ls "$home"`; do
- echo "- Cargando '$file'..."
+ echo " $host: Cargando '$file'..."
cat <<EOT | mysql -h"$host" -u"$user" -p"$pass" "$db"
delete from $file;
load data infile '$home/$file'
home="$5"
# Script.
-echo "Procesando '$home'..."
+echo "run-sql-parts: Procesando '$home'..."
for sql in `ls "$home"/*.sql | sort`; do
echo "- Ejecutando '$sql'..."
mysql -h"$host" -u"$user" -p"$pass" "$db" < "$sql"