Ese mismo .sh metelo pero a un cron. Te pego una guia:
Esta vez se trata de: ¿Cómo automatizar tareas en nuestro Linux con cron? En muchas ocasiones habreis necesitado realizar alguna tarea de forma automática un día concreto, o al principio de cada mes, o a una hora determinada y o bien habeis hecho scripts "chapuzas" o lo habeis dejado de hacer por no saber que existe cron, una potente herramienta que permite hacer todo esto, en Linux o en Unix.
Pues bien, vamos a explicaros cómo introducir tareas y programarlas en cron...(sigue)
Digamos que el cron se compone básicamente de dos "partes" el daemon y el fichero de configuración.
El daemon se llama crond y es el encargado de leer el fichero de configuración /etc/crontab.
Lo hace cada 60 segundos, en busca de cambios en dicho fichero e incorporar así tareas al sistema.
Nosotros no vamos a entrar en el deamon, ya que bastará que lo marqueis para que se ejecute al iniciar vuestro sistema, esto lo podeis hacer con la herramienta que traiga vuestra distribución sino, siempre podeis recurrir al modo texto con:chkconfig.
El fichero donde se añaden tareas es,como antes he escrito, /etc/crontab que podremos editar con nuestro editor favorito, como bien sabeis yo mismo publiqué un manual sobre la utilización del editor vi, así que podeis usar ese mismo
.
Bien, una vez editado dicho fichero encontraremos esto:
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
El primer campo, como bien veis, es el entorno donde se ejecutarán las órdenes, podeis dejarlo así por defecto, a menos que useis otra shell.
El segundo campo está claro, es el valor de la variable PATH, si las ordenes que ejecutará la tarea no se encuentran en dicho PATH, no teneis más que añadirlo.
El tercero, manda los outputs del cron al root, o a quien queramos.Si queremos que no se envie nada sólo debemos dejar la variable así: MAILTO="".
Los /etc/cron.hourly, daily...son fichero que usa cron para su gestión interna y los lanza cada día.
Bien, ahora queremos agregar una tarea a nuestro sistema, ¿cómo se hace?.
Debemos saber cómo funcionan los campos del /etc/crontab.
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.
Es decir, para el crontab el fichero es así:
minute hour day month dayofweek command
Hay que destacar que los minutos deben ser enteros de entre 0-59.
Las horas, enteros de 0-23.
Días, 1-31. (Para meses que los tengan, claro.)
Meses, 1-12, también se pueden usar nombres cortos, (en inglés) jan, feb...(lo desaconsejo, aconsejo usar números).
Días de la semana, se usan enteros 1-7 (al igual que en los meses, se puede usar el nombre corto, pero tambien lo desaconsejo, en favor de los números.).
Y por último la orden, por ejemplo puede ser: ls -h > /home/manssson/ls.txt.
Con esto ya deberíamos ser capaces de crear y hacer funcionar cualquier tarea, pero cron tiene alguna más utilidades que conviene saber.
Por ejemplo, si ponemos un asterisco (*) en algún campo, por ejemplo el mes, esto hará que se ejecute la orden todos los meses, y luego respetará los demás valores, tales como el día o la hora.
Si queremos indicar un rango de enteros, lo haremos con un guión (-).
Si queremos indicar enteros separados, se harán con comas (,), por ejemplo: 1, 2, 3.
Podemos concretar o excluir valores usan la barra (/), es decir, si queremos que una orden se ejecute durante los 0-59 minutos de una hora menos en el minuto 15, pues lo marcaremos haciendo:0-59/15.
También podemos hacer que una orden que se ejecute en un determinado minuto, haciendo:*/25. Esto hará que nuestra tarea se ejecute siempre en el minuto 25.
El uso de la barra (/) y el asterisco (*) puede emplearse en todos los campos. Si queremos que una tearea no sea ejecutada sólo debemos comentar esa linea al principio con la "almohadilla" (#): #30 18 8 * * root rm -f /var/cache/apt/archives/*.rpm.
Con todo esto ya podremos incorporar tareas a nuestro sistema de forma automática. Como dije al principio de este documento, solo debemos lanzar el daemon crond y asegurarnos de que se ejecute siempre que iniciamos el sistema.
Si pero el dice que esté comprobando de forma continua. Eso que le dices es un tanto obvio.