Как гарантировать, что пользовательская переменная среды установлена ​​до того, как cron запустит задачу?

Как гарантировать, что пользовательская переменная среды установлена ​​до того, как cron запустит задачу?

Недавно я испыталпроблема с logwatchэто исправляется запуском export DATE_MANIP=DM5. cron, похоже, забывает об этом, когда я выхожу из системы (вероятно, потому что это не сохраняется).

Где я могу добавить эту пользовательскую переменную среды? Поскольку я не управляю кодом для logwatch, я не хочу обязательно добавлять команду exportвнутри скрипта, который запускает. Я пробовал добавлять, export DATE_MANIP=DM5но /root/.bash_profileэто не помогает, когда я не вошел в систему.

CentOS 6.x

решение1

Отредактируйте свой /etc/cron.daily/0logwatchскрипт и добавьте export DATE_MANIP=DM5перед вызовом logwatch.

пример:

#!/bin/sh

#Set logwatch location
LOGWATCH_SCRIPT="/usr/sbin/logwatch"
#Add options to this line. Most options should be defined in /etc/logwatch/conf/logwatch.conf,
#but some are only for the nightly cronrun such as --output mail and should be set here.
#Other options to consider might be "--format html" or "--encode base64", man logwatch for more details.
OPTIONS="--output mail"

# Fix Date::Manip issue
export DATE_MANIP=DM5

#Call logwatch
$LOGWATCH_SCRIPT $OPTIONS

exit 0

решение2

Связанный контент