Re: Duda sobre el comportamiento de cat
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
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
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-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 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 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
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
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 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
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
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 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
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
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