manualmente job ejecutar editar php crontab

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