Re: Duda sobre el comportamiento de cat

2015-07-14 Por tema Camaleón
El Mon, 13 Jul 2015 14:36:05 -0500, Carlos Zuniga escribió:

 2015-07-12 11:48 GMT-05:00 Camaleón noela...@gmail.com:

(...)

 find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat
 logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {}
 logs/archive \;

(...)

 Acabo de probar y me funciona como se espera, ojo que cambié la línea
 por esto:
 
 find . -maxdepth 1 -type f -name 'example.com.*' -ctime -1 -exec
 cat {}  logs/log_$(date '+%Y%m').txt \; -exec mv {} arch/ \;
 
 Notesé que añadí {} antes de la redirección y lo eliminé del final.
 Inicialmente no me dí cuenta de este {} extra y se repitieron las
 entradas en el log mensual (parece que `cat foo  bar foo` añade el
 contenido de foo en bar 2 veces). Tal ves es ese el problema? Puedes
 pegar el comando exacto que utilizas?

El comando exacto lo puse en el primer mensaje, lo he dejado transcrito 
más arriba. 

El problema no es la posición del cierre de la instrucción -exec {} 
sino el orden que devuelve el comando find con el resultado de los 
archivos que es indeterminado (vamos, que no sé qué lógica sigue) y yo 
necesitaba que fuera alfabético. Con un sort se soluciona, pero se 
pierde la gracia del -exec (hay que usar alguna estructura de bucle 
como decía Manolo) y con un simple cat se obtienen los archivos en el 
orden correcto.

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/pan.2015.07.14.13.18...@gmail.com



Re: (duda resuelta) Re: Duda sobre el comportamiento de cat

2015-07-13 Por tema Manolo Díaz
El lunes, 13 jul 2015, a las 16:09 UTC+2 horas,
Camaleón escribió:

He estado haciendo pruebas para dar con una instrucción que me permita usar 
el combinado find + sort + cat + mv pero no he dado con la tecla (se admiten 
sugerencias ;-)) así que me quedo con el simple cat + mv y a correr.

Lo primero que se me viene a la cabeza es un bucle

for fichero in $(find [argumentos] | sort)
do
cat $fichero  fichero_log_mesual
mv $fichero [destino]
done

Saludos.
-- 
Manolo Díaz


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150713165216.470e5...@gmail.com



(duda resuelta) Re: Duda sobre el comportamiento de cat

2015-07-13 Por tema Camaleón
El Sun, 12 Jul 2015 23:10:23 +0200, Javier Barroso escribió:

 2015-07-12 22:27 GMT+02:00 Camaleón noela...@gmail.com:
 El Sun, 12 Jul 2015 20:26:07 +0200, Manolo Díaz escribió:

(...)

 Yo no culparía a cat. find no devuelve los ficheros en orden
 alfabético, si hay varios ficheros creados hace menos de un día puede
 ocurrir que termine volcando uno más reciente antes que otro más
 antiguo.

 Sí, eso había pensado también pero en el directorio /logs no hay
 ningún archivo que pueda encontrar el find, es decir, ahora, a las
 22:26 (y todos los días cuando se ejecuta la tarea) sólo está:

 /logs/example.com_201507_access_log.txt

(...)

 Si es sólo un día, podrías usar el siguiente snip de base:
 mes=$(date +'%Y%m' -d '-1 day');
 dia=$(date +'%Y%m%d' -d '-1 day') ;
 cat example.com.${dia}  example.com_${mes}_access_log.txt
 
 Con un bucle ya tendrías para todos los dominios

Aunque hoy el script se ha ejecutado correctamente y no ha alterado el 
orden del contenido del archivo mensual (los datos del registro del día 
12/07/2015 los ha añadido al final) he decidido dejarlo como dices, es 
decir, he prescindido del find y he optado por cat porque me parece 
que al querer afinar la selección del archivo (cuando realmente el 
script sólo va a trabajar con uno y resulta sencillo seleccionarlo por 
su nombre) me complica la vida más que me la soluciona.

Al hacer las pruebas directamente desde una sesión ssh en el servidor, 
me he dado cuenta de que el comando find devuelve los resultados como 
le da la real gana (como decía Manolo), es decir:

find logs/archive -maxdepth 1 -type f -name example.com.*

logs/archive/example.com.20150711
logs/archive/example.com.20150708
logs/archive/example.com.20150707
logs/archive/example.com.20150710
logs/archive/example.com.20150709

La única explicación lógica que le veo al hecho de que el cat  haya 
agregado el contenido del archivo 20150710 antes del 20150709 es que al 
estar haciendo pruebas se haya podido ejecutar la tarea del cron (bien 
automáticamente o bien haciéndolo yo manualmente al estar probando los 
scripts) estando esos dos archivos en el mismo directorio, es decir:

logs/example.com.20150710
logs/example.com.20150709

Y al usar el modificador -ctime -1 en find se hayan seleccionado esos 
dos archivos (en este caso -mtime -1 hubiera sido lo correcto).

Hoy, como sólo había un único archivo en el directorio de logs no ha 
habido problemas pero si quiero usar find con ciertas garantías tendría 
que asegurarme de dos cosas:

1/ Que devuelva los archivos ordenados por nombre (?)
2/ Que use la opción -mtime

He estado haciendo pruebas para dar con una instrucción que me permita usar 
el combinado find + sort + cat + mv pero no he dado con la tecla (se admiten 
sugerencias ;-)) así que me quedo con el simple cat + mv y a correr.

Saludos y gracias a los dos por las ideas,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/pan.2015.07.13.14.09...@gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-13 Por tema Carlos Zuniga
2015-07-12 11:48 GMT-05:00 Camaleón noela...@gmail.com:
 Hola,

 Estoy afinando un script para ejecutar a través de cron para que lleve a
 cabo dos acciones muy sencillas:

 1/ Que busque un determinado archivo de texto (archivo de registro diario
 de apache) y vuelque su contenido en un nuevo archivo que contenga el
 acumulado mensual.

 2/ Que mueva el archivo de registro diario a un directorio.

 Se trata de esta línea (no es copia/pega, puede haber algún gazapín):

 ***
 find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat  
 logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {} 
 logs/archive \;
 ***

 La instrucción se ejecuta sin problemas salvo por el cat, que me genera
 un archivo de registro con los días alterados, es decir, en lugar de ir
 añadiendo el contenido del archivo al final del mensual:

 /logs/example.com_201507_access_log.txt

 [2015-07-01] ...
 [2015-07-01] ...
 [2015-07-02] ...
 [2015-07-02] ...
 [2015-07-03] ...
 [2015-07-03] ...

 Lo hace a lo loco:

 [2015-07-02] ...
 [2015-07-02] ...
 [2015-07-01] ...
 [2015-07-01] ...
 [2015-07-03] ...
 [2015-07-03] ...

 ¿Qué puede provocar este comportamiento anómalo del redirector ? Se
 supone que el contenido del archivo se debe añadir al final del actual
 pero no parece que lo haga :-?


Acabo de probar y me funciona como se espera, ojo que cambié la línea por esto:

find . -maxdepth 1 -type f -name 'example.com.*' -ctime -1 -exec
cat {}  logs/log_$(date '+%Y%m').txt \; -exec mv {} arch/ \;

Notesé que añadí {} antes de la redirección y lo eliminé del final.
Inicialmente no me dí cuenta de este {} extra y se repitieron las
entradas en el log mensual (parece que `cat foo  bar foo` añade el
contenido de foo en bar 2 veces). Tal ves es ese el problema? Puedes
pegar el comando exacto que utilizas?


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/caabycjmvqupfzoch2p6v1no4txie6ompb6g-muvwdg+l_hf...@mail.gmail.com



Re: (duda resuelta) Re: Duda sobre el comportamiento de cat

2015-07-13 Por tema Javier Barroso
2015-07-13 16:09 GMT+02:00 Camaleón noela...@gmail.com:
 El Sun, 12 Jul 2015 23:10:23 +0200, Javier Barroso escribió:

 2015-07-12 22:27 GMT+02:00 Camaleón noela...@gmail.com:
 El Sun, 12 Jul 2015 20:26:07 +0200, Manolo Díaz escribió:

 (...)

 Yo no culparía a cat. find no devuelve los ficheros en orden
 alfabético, si hay varios ficheros creados hace menos de un día puede
 ocurrir que termine volcando uno más reciente antes que otro más
 antiguo.

 Sí, eso había pensado también pero en el directorio /logs no hay
 ningún archivo que pueda encontrar el find, es decir, ahora, a las
 22:26 (y todos los días cuando se ejecuta la tarea) sólo está:

 /logs/example.com_201507_access_log.txt

 (...)

 Si es sólo un día, podrías usar el siguiente snip de base:
 mes=$(date +'%Y%m' -d '-1 day');
 dia=$(date +'%Y%m%d' -d '-1 day') ;
 cat example.com.${dia}  example.com_${mes}_access_log.txt

 Con un bucle ya tendrías para todos los dominios

 Aunque hoy el script se ha ejecutado correctamente y no ha alterado el
 orden del contenido del archivo mensual (los datos del registro del día
 12/07/2015 los ha añadido al final) he decidido dejarlo como dices, es
 decir, he prescindido del find y he optado por cat porque me parece
 que al querer afinar la selección del archivo (cuando realmente el
 script sólo va a trabajar con uno y resulta sencillo seleccionarlo por
 su nombre) me complica la vida más que me la soluciona.

 Al hacer las pruebas directamente desde una sesión ssh en el servidor,
 me he dado cuenta de que el comando find devuelve los resultados como
 le da la real gana (como decía Manolo), es decir:

 find logs/archive -maxdepth 1 -type f -name example.com.*

 logs/archive/example.com.20150711
 logs/archive/example.com.20150708
 logs/archive/example.com.20150707
 logs/archive/example.com.20150710
 logs/archive/example.com.20150709

 La única explicación lógica que le veo al hecho de que el cat  haya
 agregado el contenido del archivo 20150710 antes del 20150709 es que al
 estar haciendo pruebas se haya podido ejecutar la tarea del cron (bien
 automáticamente o bien haciéndolo yo manualmente al estar probando los
 scripts) estando esos dos archivos en el mismo directorio, es decir:

 logs/example.com.20150710
 logs/example.com.20150709

 Y al usar el modificador -ctime -1 en find se hayan seleccionado esos
 dos archivos (en este caso -mtime -1 hubiera sido lo correcto).

 Hoy, como sólo había un único archivo en el directorio de logs no ha
 habido problemas pero si quiero usar find con ciertas garantías tendría
 que asegurarme de dos cosas:

 1/ Que devuelva los archivos ordenados por nombre (?)
 2/ Que use la opción -mtime

 He estado haciendo pruebas para dar con una instrucción que me permita usar
 el combinado find + sort + cat + mv pero no he dado con la tecla (se admiten
 sugerencias ;-)) así que me quedo con el simple cat + mv y a correr.

 Saludos y gracias a los dos por las ideas,

Si quieres ahorrar espacio en disco, el cat también va con los ficheros .gz:

Una vez que tengas el fichero del mes comprimido con gzip
example.com_${mes}_access_log, y suponiendo que no te interesa
comprimir el fichero diario:

cat example.com_${dia} | gzip  example.com_${mes}_access_log.gz

O si es un linux moderno, en vez gzip con xz que comprime más los
ficheros de texto, creo ...

Saludos


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/CAL5yMZTtRLiRyA7iX3zenELDG4=NE_LGDEv_Yx0ig=ct2lx...@mail.gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-12 Por tema Javier Barroso
2015-07-12 18:56 GMT+02:00 Javier Barroso javibarr...@gmail.com:
 Hola,

 2015-07-12 18:48 GMT+02:00 Camaleón noela...@gmail.com:
 Hola,

 Estoy afinando un script para ejecutar a través de cron para que lleve a
 cabo dos acciones muy sencillas:

 1/ Que busque un determinado archivo de texto (archivo de registro diario
 de apache) y vuelque su contenido en un nuevo archivo que contenga el
 acumulado mensual.

 2/ Que mueva el archivo de registro diario a un directorio.

 Se trata de esta línea (no es copia/pega, puede haber algún gazapín):

 ***
 find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat  
 logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {} 
 logs/archive \;
 ***

 Seguramente el  no te lo esté aplicando como tú quieres al cat.
La única forma que conozco de usar la redirección dentro del -exec del
find es -exec sh -c xxx  yyy \;.  ¿Conocéis otra? El  de tu
ejemplo se está aplicando al find (que en este caso coincide con la
salida estándard del cat), que como dice Manolo no busca en orden
alfabético

Saludos


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/cal5ymzsnqupdqnfmxzx63fzee6vnsgeqhogmoppsw6gdmqk...@mail.gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-12 Por tema Camaleón
El Sun, 12 Jul 2015 18:56:39 +0200, Javier Barroso escribió:

Hola Javier, gracias por contestar.

 2015-07-12 18:48 GMT+02:00 Camaleón noela...@gmail.com:

(...)

 Se trata de esta línea (no es copia/pega, puede haber algún gazapín):

 ***
 find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat  
 logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {} 
 logs/archive \;
 ***
 
 Seguramente el  no te lo esté aplicando como tú quieres al cat. Yo
 iría directamente a lo más seguro:
 
 Crea un fichero de script que reciba el nombre del fichero como
 parámetro y haga con el fichero lo que quieras, y ejecuta el script
 con -exec script {} \;

Bien, lo voy a probar con los archivos que están ya acumulados dentro
del directorio /logs/archive a ver si saco algo en claro y mientras
monitorizo la tarea de cron a ver qué hace mañana. 

 De todas formas no entiendo muy bien que quieres conseguir y que no se
 pueda hacer con el logrotate o las directivas de apache de logs.

En este caso se trata de un servidor que no gestiono yo por lo que tengo 
poco margen de movimiento. Apache genera un archivo de registro diario 
(esto no lo puedo cambiar) que se crea a las 00:00 horas con el formato
example.com.mmdd. El script que he creado se ejecuta a las 08:00
horas por lo que realmente sólo hay un archivo con el que trabajar que es
el que quiero que vaya generando el example.com_mm_access_log.txt 
mensual volcando el contenido del archivo diario y moviendo éste (el 
archivo diario) al directorio /logs/archive, más que nada para que no 
se vaya llenando el directorio /logs de archivos pequeñitos (vamos, 
se trata de un script de limpieza).

Lo raro es eso, que lo hace todo bien menos el cat  , no sé cómo ha 
podido añadir los datos del día 3 antes de los día 2.

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/pan.2015.07.12.20.13...@gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-12 Por tema Camaleón
El Sun, 12 Jul 2015 20:26:07 +0200, Manolo Díaz escribió:

 El domingo, 12 jul 2015, a las 18:48 UTC+2 horas,
 Camaleón escribió:

(...)

Se trata de esta línea (no es copia/pega, puede haber algún gazapín):

***
find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat  
logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {} 
logs/archive \;
***

(...)

¿Qué puede provocar este comportamiento anómalo del redirector ? Se 
supone que el contenido del archivo se debe añadir al final del actual 
pero no parece que lo haga :-?

 
 Yo no culparía a cat. find no devuelve los ficheros en orden
 alfabético, si hay varios ficheros creados hace menos de un día puede
 ocurrir que termine volcando uno más reciente antes que otro más
 antiguo.

Sí, eso había pensado también pero en el directorio /logs no hay ningún 
archivo que pueda encontrar el find, es decir, ahora, a las 22:26 (y 
todos los días cuando se ejecuta la tarea) sólo está:

/logs/example.com_201507_access_log.txt

Bien, a las 00:00 se genera el archivo de registro diario y tenemos:

/logs/example.com.20150712
/logs/example.com_201507_access_log.txt

Y a las 08:00 se ejecuta la orden del find y de ahí mi extrañeza con el 
resultado del cat ya que sólo trabaja con el contenido de un único 
archivo que tiene que añadir al final del actual 
example.com_201507_access_log.txt y luego mover el archivo diario 
example.com.20150712 al directorio /logs/archive, lo cual hace sin 
problemas.

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/pan.2015.07.12.20.27...@gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-12 Por tema Javier Barroso
2015-07-12 22:27 GMT+02:00 Camaleón noela...@gmail.com:
 El Sun, 12 Jul 2015 20:26:07 +0200, Manolo Díaz escribió:

 El domingo, 12 jul 2015, a las 18:48 UTC+2 horas,
 Camaleón escribió:

 (...)

Se trata de esta línea (no es copia/pega, puede haber algún gazapín):

***
find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat  
logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {} 
logs/archive \;
***

 (...)

¿Qué puede provocar este comportamiento anómalo del redirector ? Se
supone que el contenido del archivo se debe añadir al final del actual
pero no parece que lo haga :-?


 Yo no culparía a cat. find no devuelve los ficheros en orden
 alfabético, si hay varios ficheros creados hace menos de un día puede
 ocurrir que termine volcando uno más reciente antes que otro más
 antiguo.

 Sí, eso había pensado también pero en el directorio /logs no hay ningún
 archivo que pueda encontrar el find, es decir, ahora, a las 22:26 (y
 todos los días cuando se ejecuta la tarea) sólo está:

 /logs/example.com_201507_access_log.txt

 Bien, a las 00:00 se genera el archivo de registro diario y tenemos:

 /logs/example.com.20150712
 /logs/example.com_201507_access_log.txt

 Y a las 08:00 se ejecuta la orden del find y de ahí mi extrañeza con el
 resultado del cat ya que sólo trabaja con el contenido de un único
 archivo que tiene que añadir al final del actual
 example.com_201507_access_log.txt y luego mover el archivo diario
 example.com.20150712 al directorio /logs/archive, lo cual hace sin
 problemas.
Si es sólo un día, podrías usar el siguiente snip de base:
mes=$(date +'%Y%m' -d '-1 day');
dia=$(date +'%Y%m%d' -d '-1 day') ;
cat example.com.${dia}  example.com_${mes}_access_log.txt

Con un bucle ya tendrías para todos los dominios

Saludos


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/cal5ymzrtd_3-h25+svvlpmj-fskm5kopr+uu0usbr2k1cd7...@mail.gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-12 Por tema Manolo Díaz
El domingo, 12 jul 2015, a las 22:27 UTC+2 horas,
Camaleón escribió:

Sí, eso había pensado también pero en el directorio /logs no hay ningún 
archivo que pueda encontrar el find, es decir, ahora, a las 22:26 (y 
todos los días cuando se ejecuta la tarea) sólo está:

/logs/example.com_201507_access_log.txt

Bien, a las 00:00 se genera el archivo de registro diario y tenemos:

/logs/example.com.20150712
/logs/example.com_201507_access_log.txt

Y a las 08:00 se ejecuta la orden del find y de ahí mi extrañeza con el 
resultado del cat ya que sólo trabaja con el contenido de un único 
archivo que tiene que añadir al final del actual 
example.com_201507_access_log.txt y luego mover el archivo diario 
example.com.20150712 al directorio /logs/archive, lo cual hace sin 
problemas.

Damos por hecho que las entradas de los ficheros diarios
(example.com.20150712, etc) están ordenadas en tiempo ascendente. Si es
así, no logro ver qué ocurre.

Saludos.
-- 
Manolo Díaz


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150712235724.64566...@gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-12 Por tema Manolo Díaz
El domingo, 12 jul 2015, a las 21:22 UTC+2 horas,
Javier Barroso escribió:

2015-07-12 18:56 GMT+02:00 Javier Barroso javibarr...@gmail.com:
 Hola,

 2015-07-12 18:48 GMT+02:00 Camaleón noela...@gmail.com:
 Hola,

 Estoy afinando un script para ejecutar a través de cron para que lleve a
 cabo dos acciones muy sencillas:

 1/ Que busque un determinado archivo de texto (archivo de registro diario
 de apache) y vuelque su contenido en un nuevo archivo que contenga el
 acumulado mensual.

 2/ Que mueva el archivo de registro diario a un directorio.

 Se trata de esta línea (no es copia/pega, puede haber algún gazapín):

 ***
 find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat  
 logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {} 
 logs/archive \;
 ***

 Seguramente el  no te lo esté aplicando como tú quieres al cat.
La única forma que conozco de usar la redirección dentro del -exec del
find es -exec sh -c xxx  yyy \;.  ¿Conocéis otra? El  de tu
ejemplo se está aplicando al find (que en este caso coincide con la
salida estándard del cat), que como dice Manolo no busca en orden
alfabético

Saludos

Pues lo había pasado por alto. Lo primero que se establece es la
redirección. No, no conozco otra forma que establecerla en una subshell.

Saludos.
-- 
Manolo Díaz


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150713001930.3068e...@gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-12 Por tema Javier Barroso
2015-07-12 18:48 GMT+02:00 Camaleón noela...@gmail.com:
 Hola,

 Estoy afinando un script para ejecutar a través de cron para que lleve a
 cabo dos acciones muy sencillas:

 1/ Que busque un determinado archivo de texto (archivo de registro diario
 de apache) y vuelque su contenido en un nuevo archivo que contenga el
 acumulado mensual.

 2/ Que mueva el archivo de registro diario a un directorio.

 Se trata de esta línea (no es copia/pega, puede haber algún gazapín):

 ***
 find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat  
 logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {} 
 logs/archive \;
 ***

 La instrucción se ejecuta sin problemas salvo por el cat, que me genera
 un archivo de registro con los días alterados, es decir, en lugar de ir
 añadiendo el contenido del archivo al final del mensual:

 /logs/example.com_201507_access_log.txt

 [2015-07-01] ...
 [2015-07-01] ...
 [2015-07-02] ...
 [2015-07-02] ...
 [2015-07-03] ...
 [2015-07-03] ...

 Lo hace a lo loco:

 [2015-07-02] ...
 [2015-07-02] ...
 [2015-07-01] ...
 [2015-07-01] ...
 [2015-07-03] ...
 [2015-07-03] ...

Como nota, el sort puede ordenar los logs de apache (los de por defecto):
http://stackoverflow.com/questions/5672733/how-can-i-sort-an-apache-log-file-by-date

Para ver lo que te pasa, podrías pasarnos un par de ficheros de
ejemplo en los que te pase , cambiando las urls y demás si son
sensibles ...

Saludos


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/cal5ymzr5ogoegzhbsd1_g44r7r3kobrvjj-ra2uwcgzxsho...@mail.gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-12 Por tema Manolo Díaz
El domingo, 12 jul 2015, a las 18:48 UTC+2 horas,
Camaleón escribió:

Hola,

Estoy afinando un script para ejecutar a través de cron para que lleve a 
cabo dos acciones muy sencillas:

1/ Que busque un determinado archivo de texto (archivo de registro diario 
de apache) y vuelque su contenido en un nuevo archivo que contenga el 
acumulado mensual.

2/ Que mueva el archivo de registro diario a un directorio.

Se trata de esta línea (no es copia/pega, puede haber algún gazapín):

***
find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat  
logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {} 
logs/archive \;
***

La instrucción se ejecuta sin problemas salvo por el cat, que me genera 
un archivo de registro con los días alterados, es decir, en lugar de ir 
añadiendo el contenido del archivo al final del mensual:

/logs/example.com_201507_access_log.txt

[2015-07-01] ...
[2015-07-01] ...
[2015-07-02] ...
[2015-07-02] ...
[2015-07-03] ...
[2015-07-03] ...

Lo hace a lo loco:

[2015-07-02] ...
[2015-07-02] ...
[2015-07-01] ...
[2015-07-01] ...
[2015-07-03] ...
[2015-07-03] ...

¿Qué puede provocar este comportamiento anómalo del redirector ? Se 
supone que el contenido del archivo se debe añadir al final del actual 
pero no parece que lo haga :-?

Saludos,


Yo no culparía a cat. find no devuelve los ficheros en orden
alfabético, si hay varios ficheros creados hace menos de un día puede
ocurrir que termine volcando uno más reciente antes que otro más
antiguo.

Saludos.
-- 
Manolo Díaz


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150712202607.4db6b...@gmail.com



Re: Duda sobre el comportamiento de cat

2015-07-12 Por tema Javier Barroso
Hola,

2015-07-12 18:48 GMT+02:00 Camaleón noela...@gmail.com:
 Hola,

 Estoy afinando un script para ejecutar a través de cron para que lleve a
 cabo dos acciones muy sencillas:

 1/ Que busque un determinado archivo de texto (archivo de registro diario
 de apache) y vuelque su contenido en un nuevo archivo que contenga el
 acumulado mensual.

 2/ Que mueva el archivo de registro diario a un directorio.

 Se trata de esta línea (no es copia/pega, puede haber algún gazapín):

 ***
 find logs -maxdepth 1 -type f -name example.com.* -ctime -1 exec cat  
 logs/example.com_$(date '+%Y%m')_access_log.txt {} \; exec mv {} 
 logs/archive \;
 ***

Seguramente el  no te lo esté aplicando como tú quieres al cat. Yo
iría directamente a lo más seguro:

Crea un fichero de script que reciba el nombre del fichero como
parámetro y haga con el fichero lo que quieras, y ejecuta el script
con -exec script {} \;

De todas formas no entiendo muy bien que quieres conseguir y que no se
pueda hacer con el logrotate o las directivas de apache de logs.

Saludos


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/CAL5yMZRgu87ZJH6F491ejUV+G5WuoDyOM7NmyWc=-arjqjk...@mail.gmail.com