Mostrando entradas con la etiqueta crontab. Mostrar todas las entradas
Mostrando entradas con la etiqueta crontab. Mostrar todas las entradas

martes, 12 de junio de 2007

El fichero crontab o Programador de tareas


Cada uno de los ficheros crontab de configuración
están formados por asignaciones de valores a
variables de entorno y una línea por actividad que
queramos programar su ejecución. Las líneas
en blanco, los espacios iniciales y los tabuladores se
ignoran.




Los comentarios en este fichero son líneas completas
cuyo primer carácter que no sea un espacio es un
carácter #.



Las línea de programación de tareas siguen un
formato estándar formada por cinco campos que
indican un instante de ejecución y la ruta del
fichero que hay que ejecutar.




Los campos que describen el instante de ejecución
son por orden:



minuto 0-59



hora 0-23




día del mes 0-31



mes 0-12 (o sunombre con las tres primeras letras en
inglés)



dia semana 0-7 (0 or 7 indica domingo, o su nombre con las
tres primeras letras en inglés)




Un campo puede contener:



Un un asterisco (*) para indicar todos los posibles
valores.



Un valor fijo para indicar un minuto, hora, día o
mes.



Un rango de valores, dos números separados por
guiones. Un rango puede terminar en /numero para indicar el
incremento.




Una lista de valores separados por comas.



Un valor */numero para indicar todos los valores con
incremento de "número".



Ejemplos




Vemos diversas formas de configurar la ejecución de
la orden /usr/bin/fetchmail:



Ejecutarlo a las 12 de la noche cada día









"computeroutput">0 0 * * * /usr/bin/fetchmail



Ejecutarlo a las 12 :15 de la noche cada día









"computeroutput">15 0 * * * /usr/bin/fetchmail




Ejecutarlo 15 después de cada hora exacta, a las y
cuarto









"computeroutput">15 * * * * /usr/bin/fetchmail



Ejecutarlo el día 1 del mes a las 6:30









"computeroutput">30 6 1 * * /usr/bin/fetchmail



Ejecutarlo cada dos día a las 6:30









"computeroutput">30 6 */2 * * /usr/bin/fetchmail




Ejecutarlo los días 1,3,7,12,15 y 20 del mes a las
6:30









"computeroutput">30 6 1,3,7,12,15,20 * * /usr/bin/fetchmail



Ejecutarlo el día 1 de julio a las 6:30









"computeroutput">30 6 1 7 * /usr/bin/fetchmail



Ejecutarlo los lunes cada 10 minutos









"computeroutput">*/10 * * * 1 /usr/bin/fetchmail




Ejecutarlo de lunes a viernes a las hora en punto









"computeroutput">0 * * * 1-5 /usr/bin/fetchmail



Crontab predeterminados



Los sistemas, para facilitar la programación de
tareas de administración, disponen de un crontab
estándar que permite ejecutar tareas cada hora, cada
día, cada semana o cada mes; se crea un directorio
para cada una de estas tareas y todos los ficheros
ejecutables que pogamos allí, normalmente guiones de
shell, se ejecutarán automáticamente. Los
directorios en cuestión son, /etc/cron.hourly,
/etc/cron.dail, /etc/cron.weekly y /etc/cron.monthly.




El fichero /etc/crontab que ejecuta los contenidos de estos
directorios quedaría como:








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



configurar un usuario fetchmail

Previamente deberiamos de tenere instalado en nuestro linux lo siguiente:

fetchmail
deletemail

el primero sirve para trabajar con los e-mail: lo coge de un servidor externo pop3 y lo movemos a nuetro exchange, vamos que trabaja sobre smtp para que nos hagamos una idea.

Mientras que el delete mail lo que hace es que cuando pase x tiempo elime los mensajes del servidor.

Esto de mantener los mensajes en el servidor es por propia copia de seguridad.

Partiendo el usuario origen que vamos a llamarlo UsrOrigen vamos a crear otro usuario llamado UsrDestino, el primero sus datos en el servidro externo son:






Hosting ExternoExchange
Dirección:emailusrorigen@dominio.extemailusrdestino@dominio.local
Login del servidor:pop3usrorigenexchgusrdestino
Contraseña de la cuenta:passwordusrorigenpasswordusrdestino
Servidor pop3:pop3.dominio.extsrvexchange


que archivos copiar:
/home/usuarioorigen/.fetchmailrc
/home/usuarioorigen/.deletemailrc

ambos archivos se han de copiar dentro de la carpeta home de cada usuario, este paso lo haremos con el usuario root

Contenido del archivo .fetchmailrc

poll pop3.dominio.ext protocol pop3
username [nombre de usuario pop3], with password [contraseña usuario pop3], to "[login]" here;


[nombre de usuario pop3]
Aqui pondriamos el login de pop3 que solemos colocar en el outlook, en nuestro ejemplo será pop3usrorigen

[contraseña usuario pop3]
Yo creo que esta muy claro es colocar la contraseña que le toque, bueno por si eres muy cazurro en nuestro ejemplo seria: passwordusrorigen

[login]
Aqui ponemos lo que bienen antes de @dominio.local es decir la cuenta del usuario de destino (exchange), me explico: recordamos que la cuenta de origen es emailusrorigen@dominio.ext y queremos enviarlo a emailusrdestino@dominio.local, pues aqui tan solo hemos de colocar emailusrdestino. Esto no necesariamente ha de ser igual al del usuario que inicie la sesion en el exchange.

Contenido del archivo .deletemailrc


GLOBAL # Valores por omision
# ssl: no # use SSL for secure IMAP connections
days: 15 # delete mail which is older than two weeks

ACCOUNT # Cuenta del usuario
host: pop3.dominio.ext # POP server
user: pop3usrorigen # username
pass: passwordusrorigen # password



Paso a paso:
ssl: no por defecto esta en este valor si necesitaramos habilitar ssl para el acceso al correo substituiriamos 'no' por 'yes'

days El número de dias que se han de mantener los correos en el servidor externo, en nuestro caso le hemos puesto 15 dias, este valor variará dependiendo del trafico de datos que se generen.

host nombre del servidor externo
user usuario con el que se ha de iniciar la sesion en el servidor externo
pass Como és lógico es la contraseña del usuario que ha de inciar sesion en el servidor

ahora tan solo falta configurar preparar el crontab o Tareas programadas.

para ello deberemos de iniciar en linux como el usuario qu equeramos realizar la programación. para ello en la linea de comandos escribiremos crontab -e el hecho de colocar -e es para editar el programador de tareas para ese usuario.

Crontab

*/10 * * * * /usr/bin/fetchmail -k -S [nombre DNS del servidor de exchange] -D [nombre del dominio] -U
00 12 * * 0 /usr/bin/deletemail -u