"mail:sender" не работает из cron, но работает при запуске вручную
У меня есть сценарий оболочки, который в свою очередь вызывает сценарий Perl. Perl-скрипт имеет функцию отправки почты. Сценарий работает очень хорошо, когда я запускаю его вручную из командной строки и доставляет почту, в то время как по расписанию из crontab оболочка и perl выполняются в соответствии с журналом, но почта не доставляется.
Пожалуйста, найдите ниже фрагмент кода
Сценарий оболочки: rmail.sh
#!/bin/sh
. /home/pm_prod/.bash_profile
export PATH=$PATH:/home/orapps/client/oracle/product/10.2.0/client_1/bin:/usr/kerberos/bin:/data2/software/oracle/product/10.2.0/client_1/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/pm_prod/bin/:
perl /home/pm_prod/PM/bin/ALERT/rmail.pl
Сценарий оболочки: rmail.pl
#!/usr/bin/perl -w
use strict;
use Mail::Sender;
# Send the file. Change all variables to suit
my $sender = new Mail::Sender
{
smtp => 'some.smtpserver.com',
from => 'somename@somedomain.com'
};
$sender->MailFile(
{
to => 'somename@somedomain.com',
subject => 'File',
msg => "Here is the data.\n",
file => '/home/pm_prod/PM/bin/ALERT/attachement_file.txt',
});
CronTab Entry
* * * * * sh /home/pm_prod/PM/bin/ALERT/rmail.sh
пожалуйста, помогите мне
2 ответа
Проблема с переменными среды, мы должны убедиться, что все переменные среды при запуске вручную применимы и из crontab. Я следовал ниже шагов для достижения этого
1. Get the current ENV variables from normal user and put them in to a file
env > /home/pm_prod/workspace/pmenv
2. Copy the content of pmenv file to my rmail.sh script
3. Now schedule rmail.sh script in crontab.
Note : If you are too tired to test the script in crontab, you an optionally try to create a cron type environment with below command and test them before actually scheduling them as mentioned in point 3
* * * * * env > /home/pm_prod/workspace/cronenv
env - `cat /home/pm_prod/workspace/cronenv` /bin/sh
Рагу
Попробуйте это в cron:
* * * * * /bin/sh /home/pm_prod/PM/bin/ALERT/rmail.sh
Или же
* * * * * /usr/bin/sh /home/pm_prod/PM/bin/ALERT/rmail.sh