Автор Тема: Не срабатыват cron  (Прочитано 1841 раз)

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

Оффлайн letruk

  • Новичок форума
  • Сообщений: 6
Не срабатыват cron
« : 02 Февраля 2018, 17:39:04 »
Доброго времени суток.
Настроил 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

Re: Не срабатыват cron
« Ответ #1 : 03 Февраля 2018, 05:26:53 »
Cron от какого пользователя? От root или от другого? Возможно, что через isp запуск от root идёт.
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64,
LXQt/KDE/OpenBox AMD Phenon X4 / 16Gb RAM / ATI HD7750 Silent
_______________________________
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64, LXQt/KDE/OpenBox
Acer Aspire One 722 AMD C60 / 4Gb RAM / ATI HD6290
 

Оффлайн letruk

  • Новичок форума
  • Сообщений: 6
Re: Не срабатыват cron
« Ответ #2 : 03 Февраля 2018, 14:56:56 »
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

Re: Не срабатыват cron
« Ответ #3 : 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 не выводит никакой графической инфы/программы?
« Последнее редактирование: 03 Февраля 2018, 15:59:16 от moreplavatel »
 

Оффлайн letruk

  • Новичок форума
  • Сообщений: 6
Re: Не срабатыват cron
« Ответ #4 : 03 Февраля 2018, 16:02:47 »
/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

Re: Не срабатыват cron
« Ответ #5 : 03 Февраля 2018, 16:09:27 »
DISPLAY=:0.0
6 17 * * * alex firefox-esr http://google.ru
 
Пользователи, которые поблагодарили этот пост: letruk

Оффлайн ecc83

Re: Не срабатыват cron
« Ответ #6 : 03 Февраля 2018, 17:04:35 »
Собрал графическую утилиту для настройки cron:

gnome-schedule_2.3.0-1_all.deb
 

Оффлайн letruk

  • Новичок форума
  • Сообщений: 6
Re: Не срабатыват cron
« Ответ #7 : 05 Февраля 2018, 17:31:55 »
с запуском скрипта кроном через пхп так и не разобрался, а вот через вигет все заработало
 

Оффлайн moreplavatel

Re: Не срабатыват cron
« Ответ #8 : 05 Февраля 2018, 18:11:45 »
можен сам php не настроен, я правильно понял что у теебя там простецкий скрипт, который просто через curl скачивал файл? сам модуль curl дял php вообще установлен? php-curl
 

Оффлайн letruk

  • Новичок форума
  • Сообщений: 6
Re: Не срабатыват cron
« Ответ #9 : 05 Февраля 2018, 18:27:01 »
можен сам php не настроен, я правильно понял что у теебя там простецкий скрипт, который просто через curl скачивал файл? сам модуль curl дял php вообще установлен? php-curl
Да не все настроено там полноценный интернет магазин крутится. Но почему то при запуске именно как скриптом он не мог отправить email, через браузер же скрипт отрабатывает отлично, поэтому и подумал что через wget должно заработать и заработало.
« Последнее редактирование: 05 Февраля 2018, 18:29:10 от letruk »
 

Оффлайн endru

Re: Не срабатыват cron
« Ответ #10 : 06 Февраля 2018, 04:13:53 »
Очень много текста, а по существу ничего.
Кода php нет, отладки выполнения из крона нет.
В общем ничего не привели, зато запилили костыль, которым будет пользоваться любой злоумышленник?

Оффлайн letruk

  • Новичок форума
  • Сообщений: 6
Re: Не срабатыват cron
« Ответ #11 : 06 Февраля 2018, 14:28:33 »
Очень много текста, а по существу ничего.
Кода 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

Re: Не срабатыват cron
« Ответ #12 : 07 Февраля 2018, 07:14:15 »
Письмо не отправлено. Ошибка: Error of command sending: HELO
$server_name = $_SERVER["SERVER_NAME"]; каким образом должен отрабатывать из консоли?
'SERVER_NAME'
Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определенное для этого виртуального хоста.
замени:
$server_name = $_SERVER["SERVER_NAME"];на
$server_name = "my.server-name.com";и тогда код будет хоть в браузере, хоть в командной строке. но прежде чем разрешать отправку через браузер - нужно подумать о безопасном доступе к этому ресурсу, иначе быстро попадешь в список спамеров.


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

Теги: