Як надіслати висновок з cronjob на кілька електронних адрес?


55

На початку файлу crontab ви можете використовувати MAILTOінструкцію, щоб вказати, що ви хочете, щоб вихід надсилався як електронна пошта на електронну адресу. Я хотів би надіслати вихід на кілька адрес. Чи можна (і як) вказати кілька адрес?

Відповіді:


72

Він може відрізнятися залежно від того, який саме пакунок демона cron ви використовуєте, але це від вікні Vixie Cron на Ubuntu Hardy:

Якщо MAILTO визначено (і не порожнє), пошта надсилається користувачеві з таким ім'ям. MAILTO також може використовуватися для направлення пошти на декілька одержувачів, розділяючи користувачів одержувача комою. Якщо MAILTO визначений, але порожній (MAILTO = ""), пошта не надсилатиметься. Інакше пошта надсилається власнику кронтабу.

Якщо ви не використовуєте Vixie Cron або не впевнені, спробуйте сторінку керівництва для файлу crontab: man 5 crontab

Приклад

MAILTO="user.one@domain.one,user.two@domain.two"

12
Варто зазначити одне - використовувати лише коми через адреси. Не використовуйте також пробіл , інакше cron запише адресу (можливо, в / var / log / cron або / var / log / daemon) як "UNSAFE" і відмовиться надсилати до цього списку адрес.
Девід Гарднер

1
При поділі адрес з пробілами замість ком, це сталося зі мною , що cronнадіслав листа в першу адресу тількиcrontabне скаржився при збереженні змін, що є ганьбою ). У syslog ( (CRON) error (bad mailto)) є помилки , але ніхто не помітив ...
Tobias

9

В якості альтернативи вищезазначеним відповідям ви можете надіслати її за однією адресою, що є групою пошти. Це особливо добре, якщо ви керуєте декількома серверами, оскільки керувати адресами в групі простіше на поштовому сервері, а потім у кронтабелі кожного окремого сервера.


ІМХО - це правильна відповідь. Хто хоче підтримувати індивідуальні списки адрес електронної пошти в різних crontabs?
Satanicpuppy

Я створив простий список: 1. Як root, додайте "віртуального одержувача" /etc/aliases, додавши такий рядок: cron-listeners: fred@example.com, george@example.com2. На crontab встановіть MAILTO=cron-listenersЯкщо у вас немає кореневого доступу, тоді ви можете спробувати .forwardметод.
joeytwiddle

4

Одним з рішень може бути .forwardфайл у цьому обліковому записі користувача, який надсилає пошту за відповідними адресами.


1
+1 .forward файл - це шлях.
sleske

0

Найкраща відповідь - це, мабуть, або перевірити сторінки чоловіка на наявність поточної версії cron / crontab вашого дистрибутива, щоб перевірити, чи є щось, що можна зробити за допомогою параметра MAILTO, або вказати адресу електронної пошти, яка в свою чергу пересилає пошту на кілька адрес для вас.


0

Додайте ,після кожного електронного листа, наприклад:MAILTO="some.user1@example.com,some.user2@example.com"


3
У документації електронні листи розділені комою, ви використовуєте крапку з комою. Ви впевнені, що цей синтаксис працює?
physicalattraction

1
@MichaelHampton the ;не працює
030

@Alfred Я це добре знаю. Так це та інша людина, яка прокоментувала!
Майкл Хемптон

1
@kasperd Оскільки не доречно змінювати значення дописів інших. Це тільки для афіші, і поки що він вирішив не виправляти її. Неправильні відповіді слід замінювати та коментувати замість цього.
Майкл Хемптон

1
Виправили свою посаду. Не знаю, як це працювало ще в 2010 році. Як @ThatGraemeGuy у вищезгаданому дописі. Може залежати від пакета Cron.
dannyb2100
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.