Crond es un demonio (daemon) que inicia automaticamente en todas las distribuciones en Linux, Solarix, Mac, su principal función es leer el archivo /etc/crontab y llevar a cabo todas las tareas en el incluidas, basándose en la programacion o periodicidad establecida, en definitiva es un programador de tareas.

 

[root@syswoody ~]# /etc/init.d/crond restart | stop | start | reload

 

El fichero de configuración es: /etc/crontab

 

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

 

Como podemos observar ya hay unas tareas configuradas, con una programación mensual,semanal,diaria e incluso de por hora. Si colocamos nuestra tarea dentro de estos ficheros automaticamente ya estaria creada su programacion.

También debemos de revisar que para poder ejecutarlo nuestro nombre de usuario debe de aparecer en /usr/lib/cron/cron.allow, o en dado caso que no aparezcamos dentro de la lista /usr/lib/cron/cron.deny.

Si sólo existe cron.deny  y está vacío, todos los usuarios pueden utilizar crontab. Si no el archivo existe, sólo el usuario root puede usar crontab. El permitir / denegar archivos constan de el nombre de usuario en cada línea.
Comenzamos con nuestro editor preferido en este caso VI, la configuración del fichero es:
El primer campo son los minutos.
El segundo campo son las horas.
El tercer campo es el día.
El cuarto es el día de la semana.
El quinto es la orden a ejecutar.
*     *   *   *    *  comando_a_ejecutar
–     –    –    –    –
|     |     |     |     |
|     |     |     |     +—– dia de la semana (0 – 6) (Domingo=0)
|     |     |     +——- mes(1 – 12)
|     |     +——— dia del mes (1 – 31)
|     +———– hora (0 – 23)
+————- minuto (0 – 59)
Hay que tener en cuenta:
Que los minutos deben ser enteros de entre 0-59.
Las horas, enteros de 0-23.
Días, 1-31.
Meses, 1-12, también se pueden usar nombres cortos, (en inglés) jan, feb…
Días de la semana, se usan enteros 1-7
La colocación de un * es un comodín que indicaría todo ya sea para días, horas etc, para  intervalos usamos el guión (-), también tenemos la opción de excluir con / , ejemplo 0-5/3 si fuera en días elegiríamos de Lunes a Viernes excluyendo el miercoles.
Para ejecutar una tarea en un determinado minuto podemos unir */.
Desde la shell podemos lanzar varios comandos para obtener información o directamente editar nuestro cron.

#crontab-e Con este comando podremos editar nuestro archivo crontab, si no existe dicho archivo se crea.
#crontab-l Muestra el contenido del archivo crontab.
#crontab-r Eliminar el archivo crontab(ejecutar esta instrucción con cuidado).
#crontab-v Muestra la última vez que editó su archivo crontab. (Esta opción sólo está disponible en algunos sistemas.)
Para realizar una tarea programando en segundos yo use sleep, ejemplo para listar un directorio y si encuentra algun archivo imprimirlo hice lo siguiente
#!/bin/sh
while /bin/true # Mantente en este ciclo por siempre
do
for i in $( ls /mnt/datos/Departamentos/PDFOUT/sap ); do
lpr -P KONICA /mnt/datos/Departamentos/PDFOUT/$i
rm -rf /mnt/datos/Departamentos/PDFOUT/$i
done
sleep 10
done

Fuente y más documentación en Ingles | Crontab – Quick reference

Por admin

Deja una respuesta

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock