Mutt runng de Crontab

4

Eu tenho um script bash que está enviando um email através do comando de linha de comando. Este script bash está sendo chamado a partir de uma tarefa cron (configuração usando crontab -e por causa das permissões necessárias para fazer todos os itens no script). Eu defino o endereço de para que os usuários possam responder (o que funciona bem), mas o nome que está sendo mostrado é "root". Isso está causando alguma confusão. Existe uma maneira real de definir o nome associado ao endereço de e-mail?

A parte do email do script está abaixo:

[email protected]
export EMAIL

mutt -s "subject" -a /home/user/directory/file*.xls -- [email protected], [email protected] < /home/user/directory/message.txt

Obrigado

Kevin

    
por klcant 17.05.2012 / 21:28

2 respostas

5

A maneira mais fácil de garantir que o email que está sendo enviado com o nome correto seria executar a tarefa cron na conta que você precisa enviar:

Exemplo

me@domain:~$ crontab -e

Se você quiser que o usuário root envie as mensagens através do mutt, tente este liner (funcionou para mim):

export EMAIL="Me <[email protected]>" && mutt -s "subject" -a /home/user/directory/file*.xls -- [email protected], [email protected] < /home/user/directory/message.txt

Espero que isso ajude.

    
por ruffEdgz 17.05.2012 / 22:14
1

Use /etc/crontab em vez de cron , já que você pode usar isso para incluir um nome de usuário que é usado para iniciar o comando que você precisa iniciar.

Exemplo:

more /etc/crontab 

mostra

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the 'crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repor
t /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repor
t /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repor
t /etc/cron.monthly )
#

Inclua sua linha do cron neste arquivo e adicione o nome de usuário entre o dow (dia da semana) e o comando. O script será então iniciado como esse usuário.

Isso é um pouco melhor do que fazer isso em um crontab de usuários, já que você pode incluir a mesma linha aqui para cada usuário que você precisa e não precisa manter vários crontabs.

Se você precisa do root para acessar certos arquivos, altere as permissões para ele ou crie um grupo que inclua esse comando e seus usuários.

    
por Rinzwind 17.05.2012 / 22:19