¿Utiliza trabajos CRON para visitar la URL?

80

Tengo una aplicación web que tiene que realizar tareas repetidas, enviando mensajes y alertas, ya uso una página de script para hacer esas tareas cuando se carga en el navegador, es decir, http://example.com/tasks.php e incluí por medio de iframe en cada página de mi aplicación web.

Ahora quiero cambiar esto para usar trabajos CRON porque el primer enfoque puede conducir a un rendimiento de jam. Entonces, ¿cómo podría hacer un trabajo CRON que visite http://example.com/tasks.php ? Sin embargo, no quiero que este trabajo de CRON cree archivos de salida como day. *!

Alojo la aplicación en un servicio de alojamiento compartido que permite trabajos CRON a través de cPanel.

SaidbakR
fuente

Respuestas:

219
* * * * * wget -O - http://yoursite.com/tasks.php >/dev/null 2>&1

Eso debería funcionar para ti. Solo toma unwget script que cargue la página.

Usar -O -significa que la salida de la solicitud web se enviará a STDOUT (salida estándar)

al agregar, >/dev/nullindicamos que la salida estándar se redirija a un agujero negro. al agregar, 2>&1indicamos a STDERR (errores) que también se envíen a STDOUT y, por lo tanto, toda la salida se enviará a un agujero negro. (para que cargue el sitio web, pero nunca escriba un archivo en ninguna parte)

Mitch Dempsey
fuente
¿Cuáles son todos estos asteriscos al principio
Ashkan Mobayen Khiabani
@AshkanMobayenKhiabani Son parte de la sintaxis cron: nncron.ru/help/EN/working/cron-format.htm
Mitch Dempsey
1
La única solución que me funcionó con Raspbian Stretch Lite. ¡Perfecto! : D
that-ben
4
Una nota: es una buena idea citar la URL, si contiene una consulta, es posible que no funcione sin que se cite todo.
jackJoe
24

No necesita la redirección, use solo

* * * * * wget -qO /dev/null http://yoursite.com/tasks.php
Diego Torres Milano
fuente
1
¿Por qué no es necesaria la redirección?
Bradley Flood
1
-q|--quiet Turn off Wget's output.
Diego Torres Milano
1
su comando también usa la redirección pero en otra forma -qO / dev / null, ¿no es así?
Pavel Nazarov
Estrictamente hablando, no es una redirección, ya que la redirección de E / S es una cuestión de shell
Diego Torres Milano
21

Puedes usarlo curlcomo está en este hilo

Para los perezosos:

*/5 * * * * curl --request GET 'http://exemple.com/path/check.php?param1=1'

Esto se ejecutará cada 5 minutos.

Jerzy Drożdż
fuente
10

También puede usar la línea de comandos local php-cli:

* * * * * php /local/root/path/to/tasks.php > /dev/null

Es más rápido y reduce la carga de su servidor web.

mrraka
fuente
7

yo uso estos comandos

wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1

Tarea cron:

* * * * * wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1
Abbas Arif
fuente
1
Este necesita una explicación, pero funciona muy bien. Especialmente si, como yo, tienes un ampersand en tu URL. Poner la URL entre comillas es una solución. ¿Por qué pones / dev / null antes de la URL?
Gfra54
2
Esta es probablemente una respuesta tardía, pero nunca es demasiado tarde. La razón es: / dev / null es un objeto especial del sistema de archivos que desecha todo lo que está escrito en él. Redirigir una secuencia a ella significa ocultar una salida. La parte 2> & 1 significa "redirigir tanto la salida como los flujos de error".
Abbas Arif
Ok, entonces, ¿significa que el contenido de wget se redirige a / dev / null (por lo que básicamente se elimina e ignora)? Gracias
Gfra54
1
Sí, la salida enviada a / dev / null se ignora.
Abbas Arif
2

puede usar esto para url con parámetros:

lynx -dump "http://vps-managed.com/tasks.php?code=23456"

lynx está disponible en todos los sistemas de forma predeterminada.

VPS-Managed.com
fuente
-dump vuelca el contenido de la página al archivo. Ese es un efecto secundario posiblemente no deseado.
Wicher Visser
2

Puedes usar este comando:

links https://www.honeymovies.com
Abdul Alim
fuente
1

Puedes probar esto: -

    wget -q -O - http://www.example.com/> / dev / null 2> & 1

Caminar
fuente
1

* * * * * wget --quiet https://example.com/file --output-document=/dev/null

Encuentro --quietmás claro que -q, y --output-document=/dev/nullmás claro que-O - > /dev/null

Vladimir Kornea
fuente