Hi2All again! :)
Есть задача - отправлять php скриптом (из крона) почту зарегистрированным юзверям.
При запуске скрипта
/usr/local/mailsending/email_send.php
ручками - всё ок. Почта уходит.сделал в кроне скрипт
#!/bin/bash
clear
if [ -f /usr/local/mailsending/email_send.php ] ; then
php -f /usr/local/mailsending/email_send.php 1 >> /usr/local/mailsending/mail.log;
else
echo "The mail script file is missing!"
fiПри запуске скприта кроном - на мыло мне крон выпуливает:
TERM environment variable not set.
PHP Warning: PHP Startup: Unable to load dynamic library './php_mysql.so' -
./php_mysql.so: cannot open shared object file: No such file or directory in Unknown
on line 0
Exim is a Mail Transfer Agent. It is normally called by Mail User Agents,
not directly from a shell command line. Options and/or arguments control
what it does when called. For a list of options, see the Exim documentation.
Exim is a Mail Transfer Agent. It is normally called by Mail User Agents,
not directly from a shell command line. Options and/or arguments control
what it does when called. For a list of options, see the Exim documentation.
Exim is a Mail Transfer Agent. It is normally called by Mail User Agents,
not directly from a shell command line. Options and/or arguments control
what it does when called. For a list of options, see the Exim documentation.(3 раза ругается екзим, потому что php скрипт за 1 запуск 3 письма отправляет).
Делаю
www:/etc/cron.mail # echo $TERM
xterm
www:/etc/cron.mail #
(на сервере через putty).www:/etc/cron.mail # locate php_mysql.so
www:/etc/cron.mail #
- т.е. такого файла нет вообще (updatedb сделал перед locate). НО, почему всё работает при запуске скприта из консоли?!Что я делаю не так? в чём косяк? подскажите, гуру plz.
>#!/bin/bash
>clear
>if [ -f /usr/local/mailsending/email_send.php ] ; then
>php -f /usr/local/mailsending/email_send.php 1 >> /usr/local/mailsending/mail.log;
>else
>echo "The mail script file is missing!"
>fi
>
>пропишите для начала полный путь к исполняемому файлу php
>[оверквотинг удален]
>>clear
>>if [ -f /usr/local/mailsending/email_send.php ] ; then
>>php -f /usr/local/mailsending/email_send.php 1 >> /usr/local/mailsending/mail.log;
>>else
>>echo "The mail script file is missing!"
>>fi
>>
>>
>
>пропишите для начала полный путь к исполняемому файлу php100%. в точку. Я настолько загнался что про это и не подумал.
в системе есть ещё "огрызки" старого php. Он и запускался.
Только что же получается, что у cron и root - разные $PATH?
>Только что же получается, что у cron и root - разные $PATH?
конечно.
man crontab
>[оверквотинг удален]
>xterm
>www:/etc/cron.mail #
>(на сервере через putty).
>
>www:/etc/cron.mail # locate php_mysql.so
>www:/etc/cron.mail #
> - т.е. такого файла нет вообще (updatedb сделал перед locate). НО,
>почему всё работает при запуске скприта из консоли?!
>
>Что я делаю не так? в чём косяк? подскажите, гуру plz.и так можна^
* * * * * php /usr/local/mailsending/email_send.php root 2>> mailsend.log 1> /dev/null
>[оверквотинг удален]
>>www:/etc/cron.mail # locate php_mysql.so
>>www:/etc/cron.mail #
>> - т.е. такого файла нет вообще (updatedb сделал перед locate). НО,
>>почему всё работает при запуске скприта из консоли?!
>>
>>Что я делаю не так? в чём косяк? подскажите, гуру plz.
>
>и так можна^
>
>* * * * * php /usr/local/mailsending/email_send.php root 2>> mailsend.log 1> /dev/null