4 votos

Recibir alertas por correo electrónico de archivos de Linux server

OBJETIVO: Obtener un archivo de texto en mi servidor de archivos en mi bandeja de entrada de gmail.

El archivo se ejecuta el servidor de Ubuntu Server 8.04 yo actualmente SSH en el que de vez en cuando y para comprobar los registros, INTELIGENTE estadísticas para unidades de disco duro, y tal. Estoy mirando en la configuración de un script programado que se ejecuta algunos de los comandos y me envía la salida a través de correo electrónico.

El único problema que estoy teniendo es con el que realmente conseguir el correo electrónico enviado. Yo no tengo experiencia con la configuración de correo electrónico en linux y en todas las guías que apunta a sendmail parecen asumir un montón de cosas en mi nombre y en mi fichero de configuración actual. Los servidores están configurados para el intercambio de archivos con samba y NO como correo, web, o los servidores dns. No quiero ejecutar un servidor de correo o la ruta de cualquier cosa, desde el servidor o recibir cualquier correo electrónico en (o con) el servidor, a menos que alguno de los que me ayuda a lograr el objetivo. El servidor de archivos está en nuestra red normal y tiene acceso a internet.

Tengo varios dominios de sitio web (y tiene un paquete de alojamiento). He sido capaz de instalar aplicaciones como thunderbird para enviar correo con una de las cuentas de mi sitio web mediante la cumplimentación de smtp.mydotcom.com para el servidor de correo saliente para el uso y el cambio de puertos, etc para que coincida con la información de mi sitio web de cpanel de configuración de página. Hay una manera de hacer algo similar para que yo pueda enviar un correo de mi servidor de archivos a mi correo externo?

EDIT: Aquí están los pasos que tomé después de leer Dennis Williamson respuesta a continuación. Me estaba funcionando en sólo unos minutos!

Instalar esmtp:

sudo apt-get install esmtp

He creado una nueva cuenta de correo electrónico en mi página web (llamado "alertas") y editar /etc/esmtprc como este:

hostname=mail.mydomain.com:26
nombre de usuario=alertas+mydomain.com

(Estos valores fueron proporcionados por el cpanel panel de administración)

A continuación, he creado un archivo llamado "eheader" con el defecto de la parte superior de correo electrónico:

A: Yo <me@gmail.com>
De: Alertas <alerts@mydomain.com>
Sujeto: sujeto

Cuerpo Del Mensaje

Así, con el fin de disparar el correo con el siguiente comando se puede utilizar:

gato eheader <archivo1> <archivo2> ... <fileN> | /usr/bin/esmtp-t

Así que es fácil para variar de los archivos que se envían para el diario/semanal/etc puestos de trabajo.

3voto

jason saldo Puntos 5036

Yo uso esmtp, que es un envío sólo MTA, para ese propósito. Es muy sencillo de configurar. Se ha compatible con sendmail opciones de línea de comandos (algunos ignoran). Está en los repositorios.

He aquí un ejemplo sencillo:

echo -e "To: Recipient Name <person@example.com>\n\
    From: Me Myself and I <me@gmail.com>\n\
    Subject: Here is the example I promised\n\n\
    $(<somefile)" | /usr/bin/esmtp -t

Esto envía el contenido del archivo de nombre "somefile".

Hay un simple archivo de configuración, /etc/esmtprc, que contiene el nombre de host, nombre de usuario y la contraseña de su ascendente proveedor de correo electrónico (estoy suponiendo que el tuyo es de gmail).

Instrucciones para la configuración de Gmail están aquí.

2voto

mcqwerty Puntos 2106

Buscar en ssmtp, que es un sendmail reemplazo de la que apenas pasa de correo electrónico a un servidor SMTP que se configure. Es probablemente una de las formas más simples que usted puede conseguir la capacidad para enviar correos electrónicos mediante programación. Una búsqueda en internet para "ssmtp" debe venir con un montón de tutoriales e instrucciones acerca de cómo configurarlo.

Además, la mayoría de la programación/lenguajes de secuencia de comandos SMTP bibliotecas disponibles, así que si usted está familiarizado con, digamos, Perl o Python, podría escribir un pequeño script que se conecta a un servidor SMTP para enviar el correo - básicamente, usted estaría escribiendo su propio, la versión más simple de ssmtp.

2voto

Swoogan Puntos 1609

Lo que usted necesita hacer es configurar un servidor SMTP en el cuadro de Ubuntu que está configurado para reenviar a la real SMTP server (en la red o en su ISP), como ssmtp o esmtp. Aquí está una lista de ligero (mutt docs):

http://wiki.mutt.org/?LightSMTPagents

Actualización:

Como se está ejecutando Ubuntu, tendrás Exim instalado.

Se puede configurar con sudo dpkg-reconfigure exim4-config. Es muy fácil instalación para la retransmisión de correo, una vez que usted lea algunos de los docs.

/Actualización

Los siguientes son los de Gmail configuración del servidor SMTP para enviar correo a través de Gmail desde cualquier cliente de correo electrónico del programa:

  • configurar la dirección del servidor SMTP de Gmail: smtp.gmail.com
  • Configurar el SMTP de Gmail nombre de usuario: su dirección de Gmail (incluido @gmail.com) los usuarios de Google Apps pueden tener para entrar username@your_domain.com
  • Configurar el SMTP de Gmail contraseña: Tu contraseña de Gmail
  • Configurar el SMTP de Gmail puerto: 465 o 587
  • Configurar el SMTP de Gmail TLS/SSL requerido: sí

Finalmente, usted va a escribir un script que llama a una línea de comandos de cliente de correo como mutt (no creo mail o mailx hacer adjuntos). Usted podría también utilizar Perl o Python Api de correo. El script crea un correo electrónico y adjunta los archivos que usted desea.

Finalmente, usted podría poner una entrada crontab para que el script se ejecute todos los días (o cualquier intervalo que se desee):

01 * * * * root echo "This command is run at one min past every hour"
17 8 * * * root echo "This command is run daily at 8:17 am"
17 20 * * * root echo "This command is run daily at 8:17 pm"
00 4 * * 0 root echo "This command is run at 4 am every Sunday"
* 4 * * Sun root echo "So is this"
42 4 1 * * root echo "This command is run 4:42 am every 1st of the month"
01 * 19 07 * root echo "This command is run hourly on the 19th of July"

Ver man crontab y man cron

OTRA ACTUALIZACIÓN:

Usted puede enviar un correo electrónico desde la línea de comandos con SendEmail

1voto

John Nilsson Puntos 4650

Desea enviar el correo, pero no configurar un servidor de correo. No una dura orden, pero extraño. Postfix puede ser configurado para enviar el correo electrónico en un par de segundos, y sería a menudo útil para conseguir los correos electrónicos enviados a la root, tales como avisos de MD raid componentes en el fracaso.

Si no se puede o no configurar el correo electrónico en el sistema, ¿qué nos queda?

Si uno de sus servidores o sitios de alojamiento web tiene ssh, y probablemente ha de correo los servicios ya configurado, ¿qué tal un cron que scp de los archivos de registro del servidor y la envía desde el sistema de correo? El correo es enviado a menudo de unix con el correo electrónico o comando mailx.

mailx -s "the subject line" targetaddress@example.com < filetomail.txt

Antes de esto, usted podría poner las cosas que usted quiere que se indica en el archivo con cualquiera de los scripts o comandos cp usted necesita hacer. Si funciona mejor, se podría colocar el cron en el servidor de Ubuntu y tiene problema de comandos ssh para el segundo servidor para extraer los datos y enviarlo por correo.

1voto

Richard C. McGuire Puntos 3345

Yo uso un script en perl con el Correo::Sendmail para enviar informes por correo electrónico de mis servidores (y Net::Twitter para las actualizaciones de estado). Por supuesto, que significa tratar con CPAN que no puede ser vale la pena, ya que tienen a make los paquetes.

!#/usr/bin/perl 
use Mail::Sendmail;

%mail = ( To      => 'you@there.com',
        From    => 'me@here.com',
        Message => "This is a very short message"
       );

sendmail(%mail) or die $Mail::Sendmail::error;

print "OK. Log says:\n", $Mail::Sendmail::log;

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: