¿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.

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)


¿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

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.


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.


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

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.


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


1

Puedes probar esto: -

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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.