php - job - install cron windows
Ejecutando php con crontab (6)
Estoy tratando de ejecutar un script php de forma programada. Así que pensé que el crontab era una buena idea. El servidor que estoy usando está en Linux con el que no estoy tan familiarizado. Entonces, el problema que tengo es que no sé cómo hacer que el script sea ejecutable desde php. Necesito hacer referencia al script, o ponerlo en una carpeta que pueda ejecutar php desde la línea de comandos. Así que no sé qué camino dar a mi crontab, por ejemplo:
5 * * * * var/www/some/path/script.php
Encontré información vaga sobre este ejecutable php que se encuentra en
/usr/bin/php
Pero no puedo encontrar ningún archivo php allí, ¿quizás no lo tengo instalado? Mi php5 y la instalación de apache están en:
/etc/php5
Así que mi pregunta es: ¿hay algún modo de ejecutar un script php con crontab en otra carpeta o simplemente me falta el ejecutable php en usr / bin / php?
¿Es este un sistema Linux?
En las nuevas distribuciones de Linux, hay
en realidad un sistema de configuración crontab conveniente
que no requiere ninguna entrada en el crontab por el usuario. Por ejemplo, en SuSE Linux, tienes directorios.
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.monthly/
/etc/cron.weekly/
Simplemente coloque un script de invocación (konno_php_start) en cualquiera de estos directorios, como
/etc/cron.hourly/konno_php_start
que es ejecutable (chmod 755 o algo así) y contiene:
#!/bin/sh
cd /var/www/some/path/
php script.php >> logfile.txt 2>&1
y reinicie el demonio cron. Eso es.
Desde el archivo de registro, verá si su intérprete php
Se encontrará en el PATH. Si no, cambie la línea en /etc/cron.hourly/konno_php_start a
/full/path/to/php script.php >> logfile.txt 2>&1
Saludos
rbo
Comience escribiendo en una línea de comando:
whereis php
Haga esto como el usuario con el que se ejecutará el trabajo cron. Esto te mostrará el camino a tu ejecutable. Luego puede usar esa ruta (si no está ya en su variable PATH) en su entrada cron:
5 * * * * /your/path/to/php /var/www/some/path/script.php
Edición: es posible que necesite instalar el paquete php5-cli
(nombre del paquete de Ubuntu) si todo lo que tiene es el módulo PHP Apache instalado. Esto le dará el ejecutable binario que puede ejecutar desde una línea de comando.
Puedes usar el comando wget localmente:
5 * * * * wget http://localhost/some/path/script.php
También puedes usar env , encontrará y lanzará php para ti:
/usr/bin/env php /var/www/some/path/script.php
O puede colocar un shebang en su script.php (primera línea):
#!/usr/bin/env php
luego hágalo ejecutable y haga que crontab lo llame directamente, como en su primer ejemplo:
5 * * * * /var/www/some/path/script.php
Te sugiero que te guste esto,
*/5 * * * * /path/gridmon2.pl 1> /dev/null 2> /dev/null
donde en tu código .pl deberías grep usando wget o algo como esto:
wget "/www/root/index.php"
o simplemente puedes hacer esto:
/usr/bin/wget "/www/root/index.php"
Es solo mi sugerencia, solo he intentado wget a un sitio externo no localmente y funciona.
por favor intente y revertir
Tuve que encontrar un camino para encontrar el ejecutable:
andy@ararat:~$ type php
php is /usr/bin/php
andy@ararat:~$ file /usr/bin/php
/usr/bin/php: symbolic link to `/etc/alternatives/php''
andy@ararat:~$ file /etc/alternatives/php
/etc/alternatives/php: symbolic link to `/usr/bin/php5''
andy@ararat:~$ file /usr/bin/php5
/usr/bin/php5: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
por lo que necesita incluir / usr / bin / php5 como la ruta al ejecutable php, de esta forma:
andy@ararat:~$crontab -e
#*/1 * * * * /usr/bin/php5 /home/andy/www/dev.com/corp_rewards_cron.php