Я использую Ubuntu на сервере, и я использую Putty для доступа. Я хочу создать cronjobs для моего php-сайта. Как я могу это сделать?
Если вы имеете в виду, что хотите, чтобы ваш php-сайт выполнял некоторые обычные задачи, существует два возможных способа.
1) Вы используете cron для регулярной вытяжки определенной страницы. Вы можете сделать это с помощью текстового браузера, например, lynx. Вы тянете свой скрипт так:
* * * * * /usr/bin/lynx http://yourhost.com/cron.php -dump > /dev/null
(Это будет вызывать каждую минуту. Таким образом, вы можете создать собственное расписание внутри своего приложения)
2) Вы вызываете свой скрипт с помощью интерпретатора php командной строки:
* * * * * /usr/bin/php /path/to/cron.php > /dev/null
В общем случае решение два лучше. Однако вам понадобится доступ к коробке. Cron в решении можно запускать с другого хоста, если вы не можете установить кран на хост.
Также будьте осторожны с общей ошибкой, используя версию командной строки php. В debian (и, возможно, других системах) могут быть отдельные файлы php.ini для cgi, cli и mod_php. Если вы настроили свою конфигурацию, убедитесь, что в командной строке php используется правильный. Вы можете проверить это с помощью:
/usr/bin/php -i | less
В ответ на комментарий димо я сделал некоторые ориентиры. Я назвал простой локальный php-скрипт (который просто «проверяет») 1000 раз с lynx, wget и php-cli:
kbsilver:temp kbeyer$ time . wget.sh real 0m14.223s user 0m2.906s sys 0m6.335s (Command: wget -O /dev/null "localhost/test.php"; 2> /dev/null) kbsilver:temp kbeyer$ time . lynx.sh real 0m26.511s user 0m5.789s sys 0m9.467s (Command: lynx -dump "localhost/test.php"; > /dev/null) kbsilver:temp kbeyer$ time . php_cli.sh real 0m54.617s user 0m28.704s sys 0m18.403s (Command: /opt/local/bin/php /www/htdocs/test.php > /dev/null)
Сервер – lighttpd
, php(fastcgi)
с apc (в Mac OS X).
Оказывается, действительно, wget – лучший инструмент для работы относительно скорости.
Таким образом, результат php-cli
не настолько удивителен, как другие методы повторно используют уже запущенный поток php с кешем opcode.
Таким образом, единственным реальным преимуществом использования php-cli является безопасность, поскольку скрипт не будет доступен извне, поскольку вы можете выставить его за пределы docroot.
(Этот тест, очевидно, не на 100% точным, но различия, на мой взгляд, совершенно очевидны)
Я полагаю, что вы хотите создать резервную копию своего сайта PHP? Отредактируйте crontab, используя:
crontab -e
Это запустит экземпляр vi, в котором вы можете отредактировать crontab, нажмите i для режима вставки. Затем вам необходимо ввести информацию, когда будет выполняться запись cron, и команда для запуска в это время, например:
30 10 * * * tar -zcvf ./myphpsite.tar.gz /var/www/phpsite
Таким образом, команда выше будет tar gzip ваш phpsite в / var / www / phpsite в 22:30 каждый день. Выйти и выйти из vi с помощью wq
См. Дополнительную информацию: