Hola a todos. Necesitaria crear un script para ejecutarlo con el cron que me borre todos los ficheros de unos directorios determinados con la condición de que estos ficheros sean "N" dias mas antiguos que la fecha actual. Creo que estos scripts son muy comunes para borrar ficheros de log. Mi idea es con un bucle "for" recorrer todos los directorios y con otro bucle interior recorrer todos los ficheros del directorio. El principal problema lo tengo en como saber cuantos dias de antigüedad tiene un fichero para saber si lo puedo borrar. Supongo que es así como funcionan este tipo de scripts. ¿Alguna idea? Gracias por adelantado. ---- Joan Carles Jiménez jjcarles@jocajica.com ----
Hola, la parte del cron simplemente consiste en agregarle una línea al archivo /etc/crontab con la información que te interesa (comando, más las directrices de tiempo del mismo, algo así como): 5 * * * * root /home/sn/habilita_printer 2>>/home/sn/habilita_printer.log Luego, te sugiero revisar el comando find, muy poderoso y versátil, para buscar los archivos que tengan más de 10 días de antigüedad sería: find . -depth -atime +10 -exec rm {} \; Nota que 'atime' es para el tiempo de acceso, también tienes 'ctime' (Creación) y 'mtime' (Modificación) ... NOTA: El comando mostrado BORRARA TODOS LOS ARCHIVOS QUE CUMPLAN CON LA CONDICION!!! El comando find sustituirá cada instancia/nombre de archivo encontrado por '{}' en el comando, '\;' se utiliza para indicar fin de comando ... Saludos, Jean H// -----Mensaje original----- De: Joan Carles Jiménez [mailto:jjcarles@jocajica.com] Enviado el: Jueves, 02 de Junio de 2005 04:38 a.m. Para: suse-linux-s@suse.com Asunto: [suse-linux-s] Script que borre ficheros. Hola a todos. Necesitaria crear un script para ejecutarlo con el cron que me borre todos los ficheros de unos directorios determinados con la condición de que estos ficheros sean "N" dias mas antiguos que la fecha actual. Creo que estos scripts son muy comunes para borrar ficheros de log. Mi idea es con un bucle "for" recorrer todos los directorios y con otro bucle interior recorrer todos los ficheros del directorio. El principal problema lo tengo en como saber cuantos dias de antigüedad tiene un fichero para saber si lo puedo borrar. Supongo que es así como funcionan este tipo de scripts. ¿Alguna idea? Gracias por adelantado. ---- Joan Carles Jiménez jjcarles@jocajica.com ---- -- Para dar de baja la suscripción, mande un mensaje a: suse-linux-s-unsubscribe@suse.com Para obtener el resto de direcciones-comando, mande un mensaje a: suse-linux-s-help@suse.com -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.4.0 - Release Date: 01/06/2005 -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.4.0 - Release Date: 01/06/2005
Perfecto. Muchas gracias. -----Mensaje original----- De: Jean Hendrickx [mailto:jhendrickx@cantv.net] Enviado el: jueves, 02 de junio de 2005 12:07 Para: suse-linux-s@suse.com Asunto: RE: [suse-linux-s] Script que borre ficheros. Hola, la parte del cron simplemente consiste en agregarle una línea al archivo /etc/crontab con la información que te interesa (comando, más las directrices de tiempo del mismo, algo así como): 5 * * * * root /home/sn/habilita_printer 2>>/home/sn/habilita_printer.log Luego, te sugiero revisar el comando find, muy poderoso y versátil, para buscar los archivos que tengan más de 10 días de antigüedad sería: find . -depth -atime +10 -exec rm {} \; Nota que 'atime' es para el tiempo de acceso, también tienes 'ctime' (Creación) y 'mtime' (Modificación) ... NOTA: El comando mostrado BORRARA TODOS LOS ARCHIVOS QUE CUMPLAN CON LA CONDICION!!! El comando find sustituirá cada instancia/nombre de archivo encontrado por '{}' en el comando, '\;' se utiliza para indicar fin de comando ... Saludos, Jean H// -----Mensaje original----- De: Joan Carles Jiménez [mailto:jjcarles@jocajica.com] Enviado el: Jueves, 02 de Junio de 2005 04:38 a.m. Para: suse-linux-s@suse.com Asunto: [suse-linux-s] Script que borre ficheros. Hola a todos. Necesitaria crear un script para ejecutarlo con el cron que me borre todos los ficheros de unos directorios determinados con la condición de que estos ficheros sean "N" dias mas antiguos que la fecha actual. Creo que estos scripts son muy comunes para borrar ficheros de log. Mi idea es con un bucle "for" recorrer todos los directorios y con otro bucle interior recorrer todos los ficheros del directorio. El principal problema lo tengo en como saber cuantos dias de antigüedad tiene un fichero para saber si lo puedo borrar. Supongo que es así como funcionan este tipo de scripts. ¿Alguna idea? Gracias por adelantado. ---- Joan Carles Jiménez jjcarles@jocajica.com ---- -- Para dar de baja la suscripción, mande un mensaje a: suse-linux-s-unsubscribe@suse.com Para obtener el resto de direcciones-comando, mande un mensaje a: suse-linux-s-help@suse.com -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.4.0 - Release Date: 01/06/2005 -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 267.4.0 - Release Date: 01/06/2005 -- Para dar de baja la suscripción, mande un mensaje a: suse-linux-s-unsubscribe@suse.com Para obtener el resto de direcciones-comando, mande un mensaje a: suse-linux-s-help@suse.com
participants (2)
-
Jean Hendrickx
-
Joan Carles Jiménez