2015-03-18 2 views
0

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

+0

Что пользователя? Если вы хотите делать это автоматически на сервере каждую минуту, кто будет смотреть на нее и почему? – jeroen

+0

Его как предварительный просмотр для некоторых администраторов, чтобы посмотреть, что происходит в задании и какая таблица обновляется в данный момент – muuvmuuv

ответ

0

Вы можете ввести свои задания с помощью crontab -e. Если ваш редактор по умолчанию - vi, я рекомендую изменить его nano с помощью 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

OKEY nice! Спасибо, но еще один вопрос. Мой провайдер каждый час поддерживает cronjobs. Могу ли я поместить файл bash в корневой каталог, чтобы он был загружен? Или есть какие-то другие приложения/идеи, чтобы сделать мою вещь? Мой провайдер - Strato/DE и im, используя окна, поэтому трудно попробовать cronjobs. – muuvmuuv

+0

У вас есть доступ к серверу с помощью SSH? Если вы можете выполнять файлы bash, вы можете использовать это: [http://www.cyberciti.biz/faq/linux-unix-sleep-bash-scripting/](http://www.cyberciti.biz/faq/ linux-unix-sleep-bash-scripting /) или создать файл php, который спит 1 минуту в каждом цикле и выполняет 1 час – onesvat

0

добавить хрон и сделать его запустить каждую минуту, тип 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 vars, такие как «DOCUMENT_ROOT» и «HTTP_HOST», поэтому старайтесь их избегать или используйте обходной путь.

Некоторые «» CallBack возможности: - Пусть ваш триггер сценарий другой скрипт - Перенаправить вывод вашего хрон на другой Баш скрипт - ...

Смежные вопросы