Извините за длинный вопрос, но я немного растерялся, пожалуйста, помогите мне. У меня следующая проблема:
ОС: Red Hat Enterprise Linux Server release 6.6 (Santiago)
Perl: This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
Модуль, о котором идет речь: DBD::Oracle
Краткое описание:
У меня есть скрипт perl, который прекрасно работает из командной строки. При настройке в crontab следующим образом:
* * * * * \path\to\script.pl
генерируется следующая ошибка:
Can't load '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.12.1: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 190.
Пока это то, что я пробовал:
Установка этого блока в начале скрипта - та же ошибка для выполнения crontab.
BEGIN {
$ENV{'ORACLE_HOME'}='/opt/oracli/app/oracli/product/12.2.0/client_1';
$ENV{'LD_LIBRARY_PATH'}='/opt/oracli/app/oracli/product/12.2.0/client_1/lib:/lib:/usr/lib';
}
Добавление следующих строк в /home/user/.bash_profile (тот же пользователь crontab)
ORACLE_HOME=/opt/oracli/app/oracli/product/12.2.0/client_1; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
Исправление делает строки в /home/user/.bashrc (потому что они там перепутались)
Повторная загрузка обоих .bash_profile & .bashr c
Добавим это в начало моего crontab:
BASH_ENV=/home/user/.bash_profile
Все вышеперечисленное не помогло мне. Мой источник был Google и работал при условии, что я не предоставляю ORACLE_HOME & LD_LIBRARY_PATH.
Когда я запускаю простой скрипт оболочки, который содержит:
#!/bin/sh
ORACLE_HOME=/opt/oracli/app/oracli/product/12.2.0/client_1
export ORACLE_HOME
LD_LIBRARY_PATH=/opt/oracli/app/oracli/product/12.2.0/client_1/lib
export LD_LIBRARY_PATH
/path/to/script.pl
Everythign работает просто отлично так что ...
Пожалуйста, укажите мне, что мне не хватает. Есть ли в linux другой конфигурационный файл для окружения crontab.
Извините за длинный пост, я не просто в ОС.
Редактировать: Извините, я пропустил это - я Я хочу обойти, если возможно, оболочку, экспортирующую переменные, необходимые для вызова perl:
* * * * * \path\to\shell_with_variables.sh
Но чтобы найти, где я могу добавить переменные глобально, чтобы они были видны из выполнения crontab
Спасибо заранее.