Мне нужно отправлять электронные письма ежечасно и ежедневно. Я пробовал почти все, но кажется, что мой кронтаб просто не сработает. Если я запускаю сценарии через браузер, например
http://localhost/Maisha/Functions/sendhourlymails.php
мои письма отправляются красиво. (Я перевел по умолчанию сайт localhost на public_html.) Я не знаю, что случилось. Я прочитал сообщение в переполнении стека, включая исполняемый путь php, поэтому я поставил / usr / bin / php, прежде чем фактический скрипт будет работать, но это не так. Удаление / usr / bin / php не работает. Добавление php до фактического скрипта не работает. У меня есть следующие записи в моем crontab.
# mh dom mon dow command 0 * * * * /usr/bin/php /home/maxwell/public_html/Maisha/Functions/sendhourlymails.php 0 0 * * * /usr/bin/php /home/maxwell/public_html/Maisha/Functions/senddailymails.php
Попробуйте вызвать скрипт через http с помощью wget:
* * * * * wget http://mysite.com/myscript >/dev/null 2>&1
Yeh, wget – хороший вариант, также вы можете попробовать:
0 * * * * / usr / sbin / php / usr / bin / php /home/maxwell/public_html/Maisha/Functions/sendhourlymails.php
но он может работать неправильно из-за относительных путей.
Также вы должны посмотреть http://php.net/manual/en/features.commandline.php
Попробуйте поместить это в ваш .php-файл
<?php #!/usr/local/bin/php -q //your code here ?>
Затем, если вы включите какой-либо файл в этот файл, вы должны использовать что-то вроде:
include"/var/www/../your_absolute_path_from_root_folder/connect.php";
Finnaly убедитесь, что этот файл имеет правильные разрешения.
chmod 755 /var/www/.../file.php
Затем, если вы отредактируете файл crontab с помощью следующей команды
vi /etc/crontab
поместить что-то вроде
10 6 * * * root php /var/www/..path../file.php
и перезапустите службу с помощью этой команды
/etc/init.d/cron restart
вы делаете свою работу !!