bash — Cronjob и PHP работают вместе?

Я написал скрипт PHP, который помещает файл CSV в базу данных. Я хочу делать это автоматически каждую минуту. Я знаю, что есть способ через cron в Linux, но я ничего не знаю о bash и думаю, что cron не может вернуть мой PHP-файл, поэтому я могу показать индикатор выполнения для пользователя, чтобы увидеть интервал таймера. Что я делаю?

0

Решение

Вы можете ввести свою работу, используя crontab -e, Если ваш редактор по умолчанию — vi, я рекомендую изменить его на нано, используя export EDITOR=nano потому что это легко использовать для начинающих.

Каждая строка файла crontab представляет задание. Первые 5 токенов: минута, час, день месяца, месяц, день недели соответственно, последний является командой, поэтому в вашем случае первые 5 токенов будут * * * * *, что означает запускать это задание каждые минуты, когда второй это «00».

Вы можете вызывать ваши php файлы напрямую с помощью этой команды: php /var/www/cron.php & или с помощью браузера wget -O /dev/null http://example.com/cron.php Если вы используете первую, вы не можете использовать некоторые переменные $ _SERVER, но если вы используете вторую, это похоже на настоящий браузер.

В вашем случае вы можете использовать так:

* * * * * wget -O /dev/null http://example.com/cron.php
0

Другие решения

чтобы добавить cron и запускать его каждую минуту, введите crontab -e и добавьте следующую строку

* * * * * command you need executing

пример:

* * * * * ls -l /home/ > /usr/local/users.txt
* * * * * df -h > /tmp/filesystem_usage.txt
* * * * * service httpd restart
0

Посмотрите на это для начала: http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/

Также помните, что cronjobs не поддерживает все переменные $ _SERVER, такие как ‘DOCUMENT_ROOT’ и ‘HTTP_HOST’, поэтому старайтесь избегать их или используйте обходной путь.

Некоторые возможности «обратного вызова»:
— Пусть ваш скрипт вызывает другой скрипт
— Перенаправить вывод вашего cron на другой скрипт bash
— …

0