Página 1 de 1

Cron Job para enviar y recojer correo cuando hay red

Publicado: Dom, 25 Sep 2011, 02:22
por nerdhacker
Necesito saber como realizar un cron job o tarea automatizada para que monitoree y detecte si el existe coneccion en el modem instantaneamente al conectarme y realize la entrega de correo con postfix (mail -q "enviar todos los correos en cola") y luego fectchmail para descargar el correo nuevo (fetchmail "todos los servidores" "todos los usuarios")

algun tip, programa, codigo? algo por webmin?

Re: Cron Job para enviar y recojer correo cuando hay red

Publicado: Dom, 25 Sep 2011, 03:06
por hugo
Quizás te sirva algo como esto:

Código: Seleccionar todo

#!/bin/sh

HOST="aquí pones la dirección de tu servidor de correo"
CMD1="aquí pones el comando para enviar los mensajes"
CMD2="aquí pones el comando para lanzar fetchmail"

( host -t a $HOST > /dev/null 2>&1 ) && $CMD1 && $CMD2
Es solo una idea, puedes adaptar el script y programarlo en el cron a tu gusto, por ejemplo para que se ejecute cada 5 ó 10 minutos.

Puse el comando host porque algunos proveedores bloquean el icmp pero permiten las consultas DNS, aunque (en mi opinión) sería mejor utilizar ping -c1 $HOST

Re: Cron Job para enviar y recojer correo cuando hay red

Publicado: Dom, 25 Sep 2011, 12:05
por nerdhacker
Ok me parece buena tu idea, lo probare, pero viendo tu codigo me resulta otra idea que creo me puede funcionar, primero pregunto, el operador && sirve para ejecutar varios comandos consecutivamente? es decir uno detras del otro (no todo a la misma vez)
dime si usandolo con esta sintaxis estaria correcto para situarlo en una tarea cron que se ejecute cada una hora la cual en este orden realize lo siguiente "conectarse a internet marcando con wmdial; luego enviar los correos pendientes en cola; y luego recojer (fetch) los correos nuevos. por supuesto configuro un tiempo idle en la coneccion para que se desconecte automaticamente cuando ya no exista actividad en la red.

la linea que me imagino podria ser asi?

Código: Seleccionar todo

wmdial && enviar correos en la cola de postfix && fectchmail

Re: Cron Job para enviar y recojer correo cuando hay red

Publicado: Dom, 25 Sep 2011, 12:17
por hugo
Si, ese operador te permite ejecutar otro comando si el anterior se ejecutó sin errores.
Sobre la linea que propones, si utilizas parámetros quizás te sea mas conveniente meterla en un script. En fin, solo pruébala a ver si funciona.

Re: Cron Job para enviar y recojer correo cuando hay red

Publicado: Dom, 25 Sep 2011, 12:24
por nerdhacker
Perfecto, lo probare a ver que tal me va, luego comparto la experincia. Gracias!

Re: Cron Job para enviar y recojer correo cuando hay red

Publicado: Sab, 01 Oct 2011, 14:17
por nerdhacker
Bien, experimentando he encontrado una solucion y hasta ahora me falta solo un script.

todas las cuentas en fetchmail estan configuradas para que cada vez que este levantada la interfaz ppp0 realice el fetch en cada una de ellas,
ahora necesito un script para ponerlo en el cron que realize la coneccion con wvdial y lanze el comando para enviar los correos en cola de postfix luego de que fecthmail termine de ejecutarse.

alguna idea por favor?

Re: Cron Job para enviar y recojer correo cuando hay red

Publicado: Lun, 03 Oct 2011, 07:52
por hugo
¿Y dónde tienes dificultad? Solo agrega a los pasos que ya tienes adelantados el comando para enviar los mensajes, mete todo eso en un script y crea una tarea en el cron que cargue el script cada cierto tiempo.

Algo que debes tener presente es que si lanzas fetchmail en modo daemon sería recomendable detenerlo al finalizar el script para que no quede cargado intentando buscar nuevos correos cuando no haya conexión. Si lo lanzas como aplicación, no tendrás este problema.

Re: Cron Job para enviar y recojer correo cuando hay red

Publicado: Lun, 03 Oct 2011, 18:09
por nerdhacker
fetchmail solo se ejecutara o buscara correos nuevos cuando la interfaz ppp0 este levantada (con coneccion), lo que necesito es el codigo para el script que detecte o monitoree cuando fecthmail o el proceso del mismo termino de ejecutarse y de alli pase a enviar los correos en la cola de postfix.

Re: Cron Job para enviar y recojer correo cuando hay red

Publicado: Lun, 03 Oct 2011, 18:50
por hugo
Ya probaste de la manera simple?

Código: Seleccionar todo

comandodefetchmail && comandodepostfix