Не срабатыват cron

Автор letruk, 02 февраля 2018, 17:39:04

« назад - далее »

0 Пользователи и 4 гостей просматривают эту тему.

letruk

Доброго времени суток.
Настроил cron на выполнение php скрипта
1 16 * * 5
/usr/bin/php /var/www/letruk/data/www/uchet.l-grav.ru/mailsendpt.php >/dev/null 2>&1
37 16 * * 5
/usr/bin/php /var/www/letruk/data/www/uchet.l-grav.ru/mailsendpt.php >/dev/null 2>&1

при наступление заданного времени cron не срабатывает
при этом если через isp manager запустить cron вручную то все успешно отрабатывает.
Помогите разобраться что не правильно написал.

ihammers

Cron от какого пользователя? От root или от другого? Возможно, что через isp запуск от root идёт.
Debian GNU/Linux Bookworm, LXQt/OpenBox: AMD Ryzen 5 5600G / 64Gb RAM
_______________________________
Debian GNU/Linux Bookworm, без графики: AMD Phenon X4 / 16Gb RAM
_______________________________
Debian GNU/Linux Bookworm, LXQt/OpenBox: Acer Aspire One 722 AMD C60 / 8Gb RAM / ATI HD6290

letruk

Цитата: ihammers от 03 февраля 2018, 05:26:53
Cron от какого пользователя? От root или от другого? Возможно, что через isp запуск от root идёт.
от рута причем в логах пишется что отработал а в реальности ни чего подобного

Feb  2 09:00:01 kvmde01-6942 CROND[23192]: (root) CMD (/var/www/letruk/data/www/uchet.l-grav.ru/mailsend.php >/dev/null 2>&1) 
Feb  2 16:00:01 kvmde01-6942 CROND[27125]: (root) CMD (/usr/bin/php /var/www/letruk/data/www/uchet.l-grav.ru/mailsendpt.php >/dev/null 2>&1) 
Feb  2 16:37:01 kvmde01-6942 CROND[27570]: (root) CMD (/usr/bin/php /var/www/letruk/data/www/uchet.l-grav.ru/mailsendpt.php >/dev/null 2>&1) 

moreplavatel

#3
/etc/crontab

*/1 * * * * root /usr/bin/php /var/www/letruk/data/www/uchet.l-grav.ru/mailsendpt.php

добавь от какого пользователя запускаешь, в данном примере от ROOT и убери на время отладки >/dev/null 2>&1, нафига ты все выхлопы в /dev/null отправляешь, да и эту часть лучше наверное изменить /usr/bin/php, это симлинк, измени на путь к бинарнику хотябы на время отладки.
а mailsendpt.php не выводит никакой графической инфы/программы?

letruk

Цитата: moreplavatel от 03 февраля 2018, 15:55:59
/etc/crontab

*/1 * * * * root /usr/bin/php /var/www/letruk/data/www/uchet.l-grav.ru/mailsendpt.php

добавь от какого пользователя запускаешь, в данном примере от ROOT и убери на время отладки >/dev/null 2>&1, нафига ты все выхлопы в /dev/null отправляешь, да и эту часть лучше наверное изменить /usr/bin/php, это симлинк, измени на путь к бинарнику хотябы на время отладки.
а mailsendpt.php не выводит никакой графической инфы/программы?
не выводит только отправляет заранее подготовленное письмо на почту.
root сейчас добавлю.

Есть вопрос возможно ли вместо запуска скрипта через крон просто открывать url, поскольку при открытии страницы отрабатывает на 100 процентов.

moreplavatel


DISPLAY=:0.0
6 17 * * * alex firefox-esr http://google.ru

ecc83

Собрал графическую утилиту для настройки cron:

gnome-schedule_2.3.0-1_all.deb

letruk

с запуском скрипта кроном через пхп так и не разобрался, а вот через вигет все заработало

moreplavatel

можен сам php не настроен, я правильно понял что у теебя там простецкий скрипт, который просто через curl скачивал файл? сам модуль curl дял php вообще установлен? php-curl

letruk

#9
Цитата: moreplavatel от 05 февраля 2018, 18:11:45
можен сам php не настроен, я правильно понял что у теебя там простецкий скрипт, который просто через curl скачивал файл? сам модуль curl дял php вообще установлен? php-curl
Да не все настроено там полноценный интернет магазин крутится. Но почему то при запуске именно как скриптом он не мог отправить email, через браузер же скрипт отрабатывает отлично, поэтому и подумал что через wget должно заработать и заработало.

endru

Очень много текста, а по существу ничего.
Кода php нет, отладки выполнения из крона нет.
В общем ничего не привели, зато запилили костыль, которым будет пользоваться любой злоумышленник?

letruk

Цитата: endru от 06 февраля 2018, 04:13:53
Очень много текста, а по существу ничего.
Кода php нет, отладки выполнения из крона нет.
В общем ничего не привели, зато запилили костыль, которым будет пользоваться любой злоумышленник?
Да тут и описывать особо нечего

require_once "SendMailSmtpClass.php";
$zayavka1="Прошу разрешить ".date('d.m.Y')." въезд </br>а/м Мазда 3 Р718АН777 </br>Пономарев Евгений Викторович";
$mailSMTP = new SendMailSmtpClass('l-grav@mail.ru', '********', 'ssl://smtp.mail.ru', 'Гравировка Ложки', 465);
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: l-grav <l-grav@mail.ru>\r\n";
$result =  $mailSMTP->send('letruk@mail.ru', 'Заявка на въезд тс от ООО ИнТехПлазма', $zayavka1, $headers);
if($result === true){
echo "Письмо успешно отправлено";
}else{
echo "Письмо не отправлено. Ошибка: " . $result;
}

при запуске кроном выдается ошибка почемуто сервера mail.ru не пускают
PHP Notice:  Undefined index: SERVER_NAME in /var/www/letruk/data/www/uchet.l-grav.ru/SendMailSmtpClass.php on line 64
Письмо не отправлено. Ошибка: Error of command sending: HELO


класс для отправки писем https://drive.google.com/file/d/1xRzffRXsdddVQoAuVef3bQtbfdbakQyJ/view?usp=sharing

endru

Цитата: letruk от 06 февраля 2018, 14:28:33Письмо не отправлено. Ошибка: Error of command sending: HELO
$server_name = $_SERVER["SERVER_NAME"]; каким образом должен отрабатывать из консоли?
Цитата: http://php.net/manual/ru/reserved.variables.server.php'SERVER_NAME'
Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определенное для этого виртуального хоста.
замени:
$server_name = $_SERVER["SERVER_NAME"];
на
$server_name = "my.server-name.com";
и тогда код будет хоть в браузере, хоть в командной строке. но прежде чем разрешать отправку через браузер - нужно подумать о безопасном доступе к этому ресурсу, иначе быстро попадешь в список спамеров.


Вот и оказалось, что крон тут совершенно не причем, нужно начинать вопрос с приведения ошибок, и кода. И тогда все решается без использования костылей!