Crontab изменяют MAILTO только для одного определенного задания в crontab Корня

Весь Ваш поршень доступен даже с ядром на 32 бита. Основное различие, вероятно, что любое приложение не может обратиться больше чем к 3 ГБ памяти. Я не знаю, используете ли Вы действительно такие приложения (обычно базы данных или графические приложения), иначе можно проигнорировать проблему. Обратите внимание на то, что приложения на 64 бита требуют большей памяти (потому что регистры и адреса больше), и загрузитесь медленнее от диска (потому что двоичные файлы больше).

Так, прежде, чем оставить пространство пользователя на 32 бита, лучше проверьте свои требования. Кроме того, многие дистрибутив Linux обеспечивают ядра на 64 бита, которые будут использоваться с пространством пользователя на 32 бита: если Вы обращаетесь к ПК, то проверьте, как Debian обеспечивают amd64 ряд ядра для i386 (32 бита) архитектура также.

8
07.01.2014, 18:44
2 ответа

В традиционных реализациях крона Вы не можете сделать этого этот путь. Определения переменной в crontab глобальны, и крон использует тот же адрес электронной почты для всех команд.

Одно обходное решение должно было бы использовать локальный адрес и перенаправление на основе входа.

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


Некоторые современные реализации крона, по крайней мере, та в systemd, анализируют crontab по-другому (благодарит geedoubleya, jarauh): только присвоения выше строки задания относятся к тому заданию. Таким образом, если Вы находитесь в современной системе Linux, существует шанс, можно сделать это. Проверьте документацию относительно своей системы (man 5 crontab).

Вы все еще не можете сделать то, что Вы предложили в своем вопросе, потому что крон не разворачивает правую сторону переменных присвоений. MAILTO=$OLDMAILTO наборы MAILTO к значению, начинающемуся со знака доллара. Необходимо повторить старый адрес.

# Make a hambone appear. Email sent to the user running the crontab.
* * * * * /scripts/hambone.pl

MAILTO=abrahams@example.com
#Do something. Email sent to abrahams@example.com
* * * * * /scripts/chown_abrahams_niece.sh

MAILTO=
# Hunt rabbits. Doesn't send email.
* * * * * /scripts/hunt.pl --rabbits

MAILTO=bob
# Eat Ham. Email sent to bob on the local machine.
* * * * * /scripts/manga_ham.py

Также отметьте это MAILTO=porklover.cramble.edu послал бы почту на счет porklover.cramble.edu на локальной машине. Это, вероятно, не, что Вы хотите.

6
27.01.2020, 20:12
  • 1
    В его ответе пользователь @geedoubleya утверждает, что возможно изменить адрес электронной почты между командами. Это могло бы зависеть от cronjob версии? –  jarauh 09.02.2018, 09:48
  • 2
    @jarauh Благодарит, это, действительно кажется, зависит от реализации крона. Учитывая, что люди исправили крон во всех видах путей, всегда не изменяя кредиты или номер версии, я не знаю, какие версии крона делают это этот путь. –  Gilles 'SO- stop being evil' 09.02.2018, 11:07
  • 3
    Спасибо за информацию. Что делает, хуже случается так, что люди также не хотят зарегистрировать свои изменения в соответствующих страницах справочника. В частности, формат для crontab не документируется во все детали (например, порядок строк действительно имеет значение). –  jarauh 10.02.2018, 09:45

Хотя установка таких переменных в записи cron невозможна, crontab позволит вам переопределить переменную MAILTO для одной записи, а затем вернуть ее для последующих записей.

Пример:

# Eat Ham
* * * * * /scripts/manga_ham.py

MAILTO=porklover.cramble.edu

#Do something
* * * * * /scripts/chown_abrahams_niece.sh

MAILTO=root

Обратной стороной является то, что если настройка по умолчанию MAILTO будет изменена (например, в / etc / crontab ), ее необходимо будет изменить в эта запись в cron тоже.

1
27.01.2020, 20:12

Теги

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