Pregunta sobre "cron"
Hola, ¿Sería muy complicado configurar cron para que borre de forma automática los registros que están en /var/log? Ejemplo: /var/log/localmessages << ficher actual /var/log/localmessages-2003-05-01.gz /var/log/localmessages-2003-05-02.gz /var/log/localmessages-2003-05-03.gz /var/log/localmessages-2003-05-04.gz Se trata de eliminar los registros comprimidos de hace un año, vamos, que sólo se guarden los del año actual, por ejemplo, y se borren los de años anteriores. ¿Y cómo saber qué es lo que se está archivando y cada cuánto tiempo? Puede parecer una pregunta un tanto simple, pero la verdad es que no he encontrado cómo hacerlo. He pasado por los típicos #man cron y diversas FAQ, pero no me he entrado del asunto. El manual no lo tengo, SuSE lo instalé vía FTP. En otro orden de cosas... el tema Plastik es lo más bonito que he visto últimamente. Sencillamente genial. Hacía mucho tiempo que no disfrutaba estando delante de un equipo. Recomendable al 100% :-D Saludos, -- Camaleón
Hola camaleon. Mi recomendacion seria que hicieras un script que realizara dicha funcion, algo asi como: #!/bin/bash rm /var/log/archivos.log --------- Puedes hacer un ls -l y guardar en una variable la columna sexta, luego con un "if" comparar el año, si es inferior o igual a 2003 luego que proceda el borrado. Una vez acabado el script puedes poner en el cron el momento de su ejecucion. Yo he estado realizando un script que se llama vileda. Todavia estoy en la version 0.1c, y con mucha torpeza pero poco a poco voy completando el programa. Dicho script hace varias cosas, pero como su nombre indica (vileda), hace borrados de archivos innecesarios dentro de /var/log y de /tmp. Salu2 El Jueves, 6 de Mayo de 2004 18:18, Camaleón escribió:
Hola,
¿Sería muy complicado configurar cron para que borre de forma automática los registros que están en /var/log?
Ejemplo:
/var/log/localmessages << ficher actual /var/log/localmessages-2003-05-01.gz /var/log/localmessages-2003-05-02.gz /var/log/localmessages-2003-05-03.gz /var/log/localmessages-2003-05-04.gz
El Jueves, 6 de Mayo de 2004 19:39, ASFL escribió:
Hola camaleon. Mi recomendacion seria que hicieras un script que realizara dicha funcion, algo asi como:
#!/bin/bash
rm /var/log/archivos.log --------- Puedes hacer un ls -l y guardar en una variable la columna sexta, luego con un "if" comparar el año, si es inferior o igual a 2003 luego que proceda el borrado.
Una vez acabado el script puedes poner en el cron el momento de su ejecucion.
Yo he estado realizando un script que se llama vileda. Todavia estoy en la version 0.1c, y con mucha torpeza pero poco a poco voy completando el programa. Dicho script hace varias cosas, pero como su nombre indica (vileda), hace borrados de archivos innecesarios dentro de /var/log y de /tmp.
Salu2
Uhmm... poco a poco. :-) En /etc/crontab tengo lo siguiente: SHELL=/bin/sh PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin MAILTO=root # # check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly # -*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1 59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly 14 0 * * * root rm -f /var/spool/cron/lastrun/cron.daily 29 0 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly 44 0 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly Lo que me está diciendo es que mire los ficheros cron.hourly, etc. Bien, en cron.daily, cron.mouthly y cron.weekly no tengo nada. El cron.hourly tengo esto otro: clean_catman do_mandb logrotate suse.de-backup-rc.config suse.de-backaup-rpmbd suse.de-check-battery suse.de-clean-tmp suse.de-clean-vi suse.de-cron-local Supongo que el que interesa aquí es logrotate: #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf Vamos para /etc/logrotate.conf... # see "man logrotate" for details # rotate log files weekly weekly << ¿cada semana? # keep 4 weeks worth of backlogs rotate 4 << ¿mande? # create new (empty) log files after rotating old ones create << crear uno nuevo después de rotar los antiguos... no sé # uncomment this if you want your log files compressed #compress << pues están comprimidos en .gz # uncomment these to switch compression to bzip2 #compresscmd /usr/bin/bzip2 #uncompresscmd /usr/bin/bunzip2 # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp -- we'll rotate them here #/var/log/wtmp { # monthly # create 0664 root utmp # rotate 1 #} # system-specific logs may be also be configured here. ¡Ajá! aquí debe estar el asuntillo... ¿cómo le digo que me comprima, por ejemplo, un fichero cada 6 meses y no cada mes? ¿y que me borre el anterior? No veo información por aquí de /var/log/localmessages, ¿"ande andará"? Qué lío. ¿Alguna herramienta integrada en KDE para configurar las rotaciones de los log? :-D ASFL, se agradece la ayuda prestada. Voy a ver si consigo algo... Saludos, -- Camaleón
El 2004-05-06 a las 18:18 +0200, Camaleón escribió:
¿Sería muy complicado configurar cron para que borre de forma automática los registros que están en /var/log?
Si quieres reinventar la rueda, allá tu :-P Lo digo porque eso te lo hace el suse automáticamente, sólo tienes que decirle el tiempo que quieres que te los guarde. /etc/logrotate.d/syslog /var/log/warn /var/log/messages /var/log/allmessages /var/log/localmessages /var/log/firewall /var/log/kernel { compress dateext maxage 365 rotate 99 missingok notifempty size +4096k create 640 root root sharedscripts postrotate /etc/init.d/syslog reload endscript } Eso quiere decir que los comprimirá cuando tengan 4 megas, y los guardara 365 dias.
pero no me he entrado del asunto. El manual no lo tengo, SuSE lo instalé vía FTP.
Si lo tienes, está en un rpm. Por ejemplo: en suselinux-adminguide_es-8.2.0.0ax86-4.rpm tienes el manual de administración en español (de la 8.2), en formatos pdf y html. Siempre lo han incluido.
En otro orden de cosas... el tema Plastik es lo más bonito que he visto últimamente. Sencillamente genial. Hacía mucho tiempo que no disfrutaba estando delante de un equipo. Recomendable al 100%
Ni idea. -- Saludos Carlos Robinson
El cron es un programa para ejecutar otros en horas determinadas de forma automatica, es como las "tareas programadas" de ruindows. Pero el cron por si solo no hace nada. Aunque si es verdad que puedes ponerle un sencillo comando como ejecucion, veamos un ejemplo: Si quieres que a las 10:00h de la mañana,todos los dias, borre los contenidos del /tmp, podrias hacer algo asi: /etc/crontab 0 10 * * * rm /tmp/* --end cut--- Espero que esto te aclare sobre el asunto. Salu2 El Jueves, 6 de Mayo de 2004 20:08, Camaleón escribió:
El Jueves, 6 de Mayo de 2004 19:39, ASFL escribió:
Hola camaleon. Mi recomendacion seria que hicieras un script que realizara dicha funcion, algo asi como:
#!/bin/bash
rm /var/log/archivos.log --------- Puedes hacer un ls -l y guardar en una variable la columna sexta, luego con un "if" comparar el año, si es inferior o igual a 2003 luego que proceda el borrado.
Una vez acabado el script puedes poner en el cron el momento de su ejecucion.
Yo he estado realizando un script que se llama vileda. Todavia estoy en la version 0.1c, y con mucha torpeza pero poco a poco voy completando el programa. Dicho script hace varias cosas, pero como su nombre indica (vileda), hace borrados de archivos innecesarios dentro de /var/log y de /tmp.
Salu2
Uhmm... poco a poco.
:-)
En /etc/crontab tengo lo siguiente:
SHELL=/bin/sh PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin MAILTO=root # # check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly # -*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1 59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly 14 0 * * * root rm -f /var/spool/cron/lastrun/cron.daily 29 0 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly 44 0 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly
Lo que me está diciendo es que mire los ficheros cron.hourly, etc. Bien, en cron.daily, cron.mouthly y cron.weekly no tengo nada. El cron.hourly tengo esto otro:
clean_catman do_mandb logrotate suse.de-backup-rc.config suse.de-backaup-rpmbd suse.de-check-battery suse.de-clean-tmp suse.de-clean-vi suse.de-cron-local
Supongo que el que interesa aquí es logrotate:
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
Vamos para /etc/logrotate.conf...
# see "man logrotate" for details # rotate log files weekly weekly << ¿cada semana?
# keep 4 weeks worth of backlogs rotate 4 << ¿mande?
# create new (empty) log files after rotating old ones create << crear uno nuevo después de rotar los antiguos... no sé
# uncomment this if you want your log files compressed #compress << pues están comprimidos en .gz
# uncomment these to switch compression to bzip2 #compresscmd /usr/bin/bzip2 #uncompresscmd /usr/bin/bunzip2
# RPM packages drop log rotation information into this directory include /etc/logrotate.d
# no packages own wtmp -- we'll rotate them here #/var/log/wtmp { # monthly # create 0664 root utmp # rotate 1 #}
# system-specific logs may be also be configured here.
¡Ajá! aquí debe estar el asuntillo... ¿cómo le digo que me comprima, por ejemplo, un fichero cada 6 meses y no cada mes? ¿y que me borre el anterior? No veo información por aquí de /var/log/localmessages, ¿"ande andará"?
Qué lío. ¿Alguna herramienta integrada en KDE para configurar las rotaciones de los log?
:-D
ASFL, se agradece la ayuda prestada. Voy a ver si consigo algo...
Saludos,
-- Camaleón
El Viernes, 7 de Mayo de 2004 02:34, Carlos E. R. escribió:
Si quieres reinventar la rueda, allá tu :-P
No, no... no quiero reinventar nada, y creo que me has dado una pista.
Lo digo porque eso te lo hace el suse automáticamente, sólo tienes que decirle el tiempo que quieres que te los guarde.
Ahí es donde quería llegar... Así que la configuración está en syslog.
/etc/logrotate.d/syslog
/var/log/warn /var/log/messages /var/log/allmessages /var/log/localmessages /var/log/firewall /var/log/kernel { compress dateext maxage 365 rotate 99 missingok notifempty size +4096k create 640 root root sharedscripts postrotate /etc/init.d/syslog reload endscript }
Eso quiere decir que los comprimirá cuando tengan 4 megas, y los guardara 365 dias.
Perfecto, por ahí van los tiros.
Si lo tienes, está en un rpm. Por ejemplo: en suselinux-adminguide_es-8.2.0.0ax86-4.rpm tienes el manual de administración en español (de la 8.2), en formatos pdf y html. Siempre lo han incluido.
¿Y se pueden hacer búsqeudas de algún tipo? Por ejemplo, ¿cómo buscar por el capítulo donde se habla de cron?
Ni idea.
Lo del tema Plastik iba por el nuevo tema gráfico que incorpora la versión KDE 3.2.2, que es sencillamente genial, vamos, muy sencilla y estética. Una gozada. Gracias a ambos (Carlos y ASFL) por los consejos y ayudas sobre cron, a ver si este fin de semana me pongo a ello y lo configuro "al gusto". :-) Saludos, -- Camaleón
El 2004-05-07 a las 15:59 +0200, Camaleón escribió:
El Viernes, 7 de Mayo de 2004 02:34, Carlos E. R. escribió:
Si quieres reinventar la rueda, allá tu :-P
No, no... no quiero reinventar nada, y creo que me has dado una pista.
Es broma, me lo pusiste al pelo. El ":-P" significa eso.
Si lo tienes, está en un rpm. Por ejemplo: en suselinux-adminguide_es-8.2.0.0ax86-4.rpm tienes el manual de administración en español (de la 8.2), en formatos pdf y html. Siempre lo han incluido.
¿Y se pueden hacer búsqeudas de algún tipo? Por ejemplo, ¿cómo buscar por el capítulo donde se habla de cron?
Claro. Simplemente haciendo click en la ayuda, buscar (o búsqueda avanzada quizás). Requiere tener instalado susehelp. A mi me encuentra 11 entradas en el manual de configuración, 1 en la guia del usuario, y 6 en la SDB (Suse 8.2). Ah, y 5 en el Faq no oficial de Togan. O si abres el pdf, busqueda de texto normal y corriente. Si abres el Yast, sección de documentación, encontrarás muchas cosas. Están los howto, los manuales de suse, algunos libros "libres", y otras cosas interesantes.
Ni idea.
Lo del tema Plastik iba por el nuevo tema gráfico que incorpora la versión KDE 3.2.2, que es sencillamente genial, vamos, muy sencilla y estética. Una gozada.
Ah, bueno, eso explica porque no me enterado: como uso modem, no descargo esas cosas.
Gracias a ambos (Carlos y ASFL) por los consejos y ayudas sobre cron, a ver si este fin de semana me pongo a ello y lo configuro "al gusto".
Pero vamos, que para limpiar el directorio de logs no necesitas hacer nada, el script existe (/etc/cron.daily/logrotate), y lo unico que hace es llamar a "/usr/sbin/logrotate /etc/logrotate.conf". Haz "man rotate" para más información. -- Saludos Carlos Robinson
Camaleón wrote:
Hola,
¿Sería muy complicado configurar cron para que borre de forma automática los registros que están en /var/log?
Ejemplo:
/var/log/localmessages << ficher actual /var/log/localmessages-2003-05-01.gz /var/log/localmessages-2003-05-02.gz /var/log/localmessages-2003-05-03.gz /var/log/localmessages-2003-05-04.gz
Se trata de eliminar los registros comprimidos de hace un año, vamos, que sólo se guarden los del año actual, por ejemplo, y se borren los de años anteriores.
¿Y cómo saber qué es lo que se está archivando y cada cuánto tiempo?
Puede parecer una pregunta un tanto simple, pero la verdad es que no he encontrado cómo hacerlo. He pasado por los típicos #man cron y diversas FAQ, pero no me he entrado del asunto. El manual no lo tengo, SuSE lo instalé vía
Tu problema no es de cron, sino de logrotate Verifica el /etc/logrotate.conf y como le pones que los comprima una vez a la semana, le pones que guarde 52 archivos, y asi tendras un año siemrpe de anterioridad Revisa eso... -- ------------------------------------------------------ Una prensa libre es el gran enemigo de los dictadores. Independientemente de sus abusos, sus debilidades, sus errores. Una prensa libre es la gran aliada y defensora de la democracia. Charlos S. Shapiro Embajador de USA en la Rep. de Venezuela Martes, 20 de Mayo 2003
participants (4)
-
ASFL
-
Camaleón
-
Carlos E. R.
-
Hipolito A. Gonzalez M.