Матт бежит от Кронтаба

У меня есть bash-скрипт, который отправляет письмо через mutt командной строки. Этот сценарий bash вызывается из задания cron (настройка выполняется с помощью crontab -e из-за разрешений, необходимых для выполнения всех элементов в сценарии). Я установил адрес from, чтобы пользователи могли отвечать (что работает нормально), но отображаемое имя - «root». Это вызывает некоторую путаницу. Есть ли реальный способ установить имя, связанное с адресом электронной почты?

Ниже приведена часть сценария для электронной почты:

EMAIL=me@domain.com
export EMAIL

mutt -s "subject" -a /home/user/directory/file*.xls -- user1@domain.com, user2@domain.com < /home/user/directory/message.txt

Спасибо

Кевин

4
задан 18 May 2012 в 17:49

2 ответа

Самый легкий способ удостовериться электронная почта, которая отправляет с корректным именем, должна была бы выполнить задание крона на учетной записи, которую Вам нужен он для отсылки:

Пример

me@domain:~$ crontab -e

Если Вы хотите, чтобы пользователь root отослал сообщения через дурака, попробуйте этот лайнер (он работал на меня):

export EMAIL="Me <me@domain.com>" && mutt -s "subject" -a /home/user/directory/file*.xls -- user1@domain.com, user2@domain.com < /home/user/directory/message.txt

Надеюсь, это поможет.

5
ответ дан 18 May 2012 в 17:49

Используйте /etc/crontab вместо cron, поскольку вы можете использовать это для включения имени пользователя, которое используется для запуска команды, которую вам нужно запустить.

Пример:

more /etc/crontab 

показывает

# /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 )
#

Включите вашу строку из cron в этот файл и добавьте имя пользователя между dow (день недели) и командой. Сценарий будет запущен от имени этого пользователя.

Это немного лучше, чем делать это в пользовательском crontab, так как вы можете включить одну и ту же строку здесь для каждого пользователя, который вам нужен, и вам не нужно поддерживать несколько crontabs.

Если вам нужен root для доступа к определенным файлам, вы должны изменить разрешения для него или создать группу, которая включает эту команду и ваших пользователей.

0
ответ дан 18 May 2012 в 17:49

Другие вопросы по тегам:

Похожие вопросы: