Назад | Перейти на главную страницу

Как поменять mailx?

У меня проблема с моими виртуальными машинами.

Я использовал тот же шаблон (Debian 7min) в OpenVZ, но по какой-то причине эти двое используют разные mailx. У меня есть небольшой скрипт, который я использую для отправки статусных писем:

    mailx -v -s "$subject" -S smtp=$smtphost -S from="$mailfrom" -S smtp-auth-user=$smtpuser \
 -S smtp-auth-password=$smtppwd $emailto </dev/null

Он работает на одном сервере, другой выдает мне сообщение об ошибке «unknown command -S».

Хорошо, я знаю, что mailx - это просто виртуальный пакет, и я обычно устанавливаю bsd-mailx, но оба сервера показывают, что они идентичны

ls -al / и т.д. / альтернативы / ма *

lrwxrwxrwx 1 root root 18 Feb  9 20:07 /etc/alternatives/mailx -> /usr/bin/bsd-mailx

dpkg --get-selections | grep mail

bsd-mailx                   install
fetchmail                   install
procmail                    install
rmail                       install
sendmail                    install
sendmail-base                   install
sendmail-bin                    install
sendmail-cf                 install
sendmail-doc                    install

Проблема в том, что mailx никогда не поддерживает какую-либо информацию о версии, поэтому mailx --help или --version просто говорит «неизвестный параметр», поэтому я даже не могу понять, какая «версия» mailx это

Это вывод с сервера 1

mailx: illegal option -- -
Usage: mailx -eiIUdEFntBDNHRV~ -T FILE -u USER -h hops -r address -s SUBJECT -a FILE -q FILE -f FILE -A ACCOUNT -b USERS -c USERS -S OPTION users

это вывод с сервера 2

mailx: invalid option -- '-'
usage: mailx [-dEIinv] [-a header] [-b bcc-addr] [-c cc-addr] [-s subject] to-addr ...
             [-- sendmail-options ...]
       mailx [-dEIiNnv] -f [name]
       mailx [-dEIiNnv] [-u user]

Явно не идентичный. Любая помощь, как я могу «получить» mailx с сервера 1 на сервер 2? У меня нет идей.

Итак, на server1 у вас есть heilroom-mailx, т.е. /etc/alternatives/mailx -> /usr/bin/heirloom-mailx, второй сервер использует bsd-mailx.

Делать apt-get install heirloom-mailx на обоих серверах, если вы хотите получать mailx с server1.

После установки сервер должен автоматически использовать семейную реликвию как mailx, в противном случае:

sudo update-alternatives --set mailx /usr/bin/heirloom-mailx

Чтобы расширить ответ от @darek и @ nadir-latif /usr/bin/mail также является альтернативой и является рабом mailx альтернативно, проверяя установки Wheezy / Jessie, heirloom-mailx приоритет был 60, поэтому для установки используйте

sudo update-alternatives --install /usr/bin/mailx mailx /usr/bin/heirloom-mailx \
60 --slave /usr/bin/mail mail /usr/bin/heirloom-mailx \
--slave /usr/share/man/man1/mail.1.gz mail.1.gz \
/usr/share/man/man1/heirloom-mailx.1.gz --slave \
/usr/share/man/man1/mailx.1.gz mailx.1.gz \
/usr/share/man/man1/heirloom-mailx.1.gz

что позволит установить как mail и mailx альтернативы. На растяжке mail.mailutils имеет приоритет 30 и со страницы руководства

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

поэтому, если вы используете приоритет 60 и у вас установлен автоматический режим, вам не нужно явно указывать альтернативу, иначе, поскольку @darek использует

sudo update-alternatives --set mailx /usr/bin/heirloom-mailx