|
|
· Junio y Julio, Curso Global de Servidores con CentOS 6.
· Taller de programación de Python. · Curso de programación de PHP. · Prueba ALDOS 1.4.4. Nuestro sistema operativo para escritorio. Configuración y uso de Crond.
Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/ Jabber ID: darkshram@jabber.org Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
Introducción.Acerca del servicio crond.El servicio crond es proporcionado por el paquete cronie (utilizado en CentOS 6, Fedora™, openSUSE™ y Red Hat™ Enterprise Linux 6), el cual es un proyecto derivado de vixie-cron (utilizado en CentOS 5, Red Hat™ Enterprise Linux 5 y SUSE™ Linux Enterprise 10 y 11) y que incluye mejoras en la configuración y en la seguridad, como la capacidad de utilizar PAM y SELinux. Crond es un servicio del sistema encargado de ejecutar mandatos en horarios determinados. Los mandatos programados pueden definirse en el archivo de configuración /etc/crontab. Se puede utilizar además el directorio /etc/cron.d, el cual sirve para almacenar archivos con el mismo formato del archivo /etc/crontab. El sistema dispone además de varios directorios utilizados por el servicio crond:
Los archivos contenidos en estos directorios sólo puede ser modificados por root y pueden incluir archivos ejecutables con algún programa en BASH o mandatos particulares. El servicio utiliza también archivos localizados dentro del directorio /var/spool/cron, que son generados por los usuarios regulares a través del mandato crontab con la opción -e y que permiten a éstos el poder programar mandatos. De modo predeterminado, todos los usuarios con intérprete de mandatos pueden utilizar el servicio crond, a través del mandato crontab y programar, en los horarios que sean necesarios, los mandatos a los que se tengan privilegios. Es posible restringir el uso de este servicio, añadiendo la lista de nombres de los usuarios a los cuales se requiera denegar el uso de éste, dentro del archivo /etc/cron.deny (un nombre de usuario por renglón). El paquete correspondiente al servicio crond incluye diferentes manuales que describen el uso y configuración. Para obtener una descripción detallada del uso del mandato crontab, ejecute man 1 crontab:
Para obtener una descripción detallada del formato utilizado para definir las fechas a utilizar y una descripción detallada de la configuración del archivo /etc/crontab y el formato a seguir para los archivos que se almacenen dentro de los directorios de configuración mencionados, ejecute man 5 crontab:
Equipamiento lógico necesario.De modo predeterminado, tras ser instalado, el servicio crond viene habilitado en los niveles de ejecución 2, 3, 4 y 5 y seguramente estará en ejecución. Salvo que se haya hecho algún cambio en el archivo /etc/sysconfig/crond, como por ejemplo para añadir algún argumento al inicio del servicio, es innecesario reiniciar el servicio. La ejecución de los mandatos programados se realiza procesando el contenido de los archivos y directorios de configuración. En CentOS, Fedora™ y Red Hat™ Enterprise Linux.Si utiliza CentOS 6 o Red Hat™ Enterprise Linux 6 o versiones posteriores de éstos, el paquete cronie se incluye en la instalación predeterminada. De ser necesario, ejecute lo siguiente para instalar el paquete cronie:
Si utiliza CentOS 5 o Red Hat™ Enterprise Linux 5, éstos sistemas operativos utilizan el paquete vixie-cron, el cual se incluye en la instalación predeterminada. De ser necesario, ejecute lo siguiente para instalar el paquete vixie-cron:
Para iniciar el servicio por primera vez cuando recién se ha instalado cronie, sólo ejecute:
En openSUSE™.El paquete cronie se incluye en la instalación predeterminada de openSUSE™. Si fuese necesario, instale el paquete cronie ejecutando lo siguiente:
Para iniciar el servicio por primera vez cuando recién se ha instalado cronie, sólo ejecute:
SUSE™ Linux Enterprise.El paquete cron (alias vixie-cron) se incluye en la instalación predeterminada de SUSE™ Linux Enterprise. Si fuese necesario, instale el paquete cron ejecutando lo siguiente:
Para iniciar el servicio por primera vez cuando recién se ha instalado cronie, sólo ejecute:
Anacron.Para los sistemas donde es imposible que el servicio crond se ejecute las 24 horas, los 365 días del año, como ocurre en los equipos portátiles y sistemas de escritorio, conviene instalar además el paquete cronie-anacron, el cual se encarga de ejecutar los mandatos programados pendientes que haya sido imposible procesar con el servicio crond, al estar éstos configurados en horarios en los cuales esté apagado o suspendido el sistema. Cabe señalar que anacron depende de cronie o vixie-cron, según corresponda la versión del sistema operativo. Instalación en CentOS, Fedora™ y Red Hat™ Enterprise Linux.Si utiliza CentOS 6, Fedora™ o Red Hat™ Enterprise Linux 6, instale el paquete cronie-anacron, ejecute lo siguiente:
Anacron se instala como un mandato programado cada hora. Si utiliza CentOS 5 o Red Hat™ Enterprise Linux 5, instale el paquete anacron, ejecute lo siguiente:
Si utiliza CentOS 5 o Red Hat™ Enterprise Linux 5, el servicio anacron viene activo en los niveles de ejecución 2, 3, 4 y 5. Para iniciarlo por primera vez, ejecute lo siguiente:
Instalación en openSUSE™.Para instalar anacron, ejecute lo siguiente:
Anacron se instala como un mandato programado cada hora. Procedimientos.Formato para el archivo /etc/crontab.Cualquier usuario que sea definido para ejecutar un mandato programado en el archivo /etc/crontab, podrá ejecutar todo aquello para lo cual tenga privilegios, siempre y cuando se defina un intérprete de mandatos válido (por ejemplo /bin/bash o /bin/sh) en la variable de entorno SHELL, así como las rutas de binarios ejecutables que sean necesarias, sin importar lo que esté definido en el archivo /etc/passwd o las variables de entorno definidas en el archivo ~/.bashrc del usuario a utilizar.
El archivo /etc/crontab permite además definir a cuál usuario enviar un mensaje de correo electrónico con los resultados de las salidas de los mandatos que las generen y el intérprete de mandatos a utilizar.
El archivo utiliza un formato de 7 campos, donde se define, respectivamente, minuto, hora, día del mes, mes, día de la semana, usuario a utilizar y el mandato a ejecutar
Formato exclusivo de cronie.A diferencia de vixie-cron, con cronie se pueden omitir los primeras 5 campos y en su lugar utilizar las siguientes opciones:
Formato para utilizar con el mandato crontab -e.Todos los usuarios del sistema pueden ejecutar el mandato crontab con la opción -e, a excepción de aquellos quienes tengan /dev/null (dispositivo nulo) como intérprete de mandatos o bien que se encuentren listados en el archivo /etc/cron.deny. Para los usuarios que tengan /sbin/nologin como intérprete de mandatos, será necesario se defina /bin/bash o /bin/sh en la variable de entorno SHELL al inicio del archivo cron correspondiente. Con este tipo de usuarios, habría que ejecutar lo siguiente para poder hacer uso del mandato crontab.
El formato para los usuarios, utilizando el mandato crontab con la opción -e, es el mismo que el del archivo /etc/crontab, pero descartando la columna que define al usuario.
Todos los archivos de cron generados por los usuarios se almacenan siempre dentro del directorio /var/spool/cron, utilizando el mismo nombre del usuario como nombre de archivo. Es decir, los mandatos programados por el usuario fulano, se almacenarán en el archivo /var/spool/cron/fulano. Ejemplos de configuraciones.Considerando el siguiente ejemplo:
Lo anterior significa que a las 01:01, todos los días, todos los meses, todos los años, todos los días de la semana, se ejecutará, como el usuario root, el mandato freshclam. Se añade al final «> /dev/null 2>&1» para que cualquier dato generado por la ejecución de este mandato, se descarte y sea enviando al dispositivo nulo del sistema (/dev/null) y que también se envíe la salida de STDERR hacia STDOUT. Considerando el siguiente ejemplo:
Lo anterior significa que a las 23:00, todos los viernes, todos los meses, todos años, se ejecutará, como el usuario root, el mandato yum -y update. Al igual que en el ejemplo anterior, se añade al final «> /dev/null 2>&1» para que cualquier dato generado por la ejecución de este mandato, se descarte y sea enviando al dispositivo nulo del sistema (/dev/null) y que también cambie el direccionamiento de STDERR hacia STDOUT. Considerando el siguiente ejemplo:
Lo anterior significa que cada 5 minutos se ejecutará, como el usuario root, el mandato /sbin/service httpd reload. Considerando el siguiente ejemplo:
Lo anterior significa que cada 3 horas se ejecutará, como el usuario root, el mandato /sbin/service httpd reload. Considerando el siguiente ejemplo:
Lo anterior significa que cada 3 días se ejecutará, como el usuario root, el mandato /sbin/service httpd reload. Considerando el siguiente ejemplo:
Lo anterior significa que a las 10:30, cada 20 de febrero, todos lo años, se ejecutará, como el usuario fulano, el mandato wall "¡Feliz cumpleaños a mi!". Considerando el siguiente ejemplo:
Lo anterior significa que cada vez que se reinicie el sistema, se ejecutará, como el usuario fulano, el mandato mail -s "El sistema ha reiniciado", mismo que enviará con mensaje de correo electrónico a alguien@gmail.com, con el asunto "El sistema ha reiniciado". |
Comentarios Recientes