linux - digicert - save certificate from chrome
¿WGET expira? (4)
Estoy ejecutando un script PHP a través de cron usando Wget, con el siguiente comando:
wget -O - -q -t 1 http://www.example.com/cron/run
El script tomará un máximo de 5-6 minutos para hacer su procesamiento. ¿WGet lo esperará y le dará todo el tiempo que necesite, o pasará el tiempo de espera?
Antes de la versión 1.14, los argumentos de tiempo de espera de wget no se respetaban si se descargaba a través de https debido a un bug .
Como en su pregunta dijo que es un script PHP, tal vez la mejor solución podría ser simplemente agregar su script:
ignore_user_abort(TRUE);
De esta forma, incluso si wget
finaliza, el script PHP continúa siendo procesado al menos hasta que no exceda el límite de max_execution_time
(ini directive: 30 segundos por defecto).
De todos modos, no debería cambiar su tiempo de espera, de acuerdo con el manual de UNIX, el tiempo de espera predeterminado de wget es de 900 segundos (15 minutos) , el whis es mucho mayor que los 5-6 minutos que necesita.
De acuerdo con la página man de wget , hay un par de opciones relacionadas con los tiempos de espera, y hay un tiempo de espera de lectura predeterminado de 900, por lo que digo que sí, que podría expirar.
Estas son las opciones en cuestión:
-T seconds
--timeout=seconds
Establezca el tiempo de espera de la red en segundos. Esto es equivalente a especificar
--dns-timeout
,--connect-timeout
y--read-timeout
, todo al mismo tiempo.
Y para esas tres opciones:
--dns-timeout=seconds
Establezca el tiempo de espera de búsqueda de DNS en segundos.
Las búsquedas DNS que no se completan dentro del tiempo especificado fallarán.
De forma predeterminada, no hay tiempo de espera en las búsquedas de DNS, aparte de las implementadas por las bibliotecas del sistema.
--connect-timeout=seconds
Establezca el tiempo de espera de la conexión en segundos.
Las conexiones TCP que tardan más tiempo en establecerse serán abortadas.
De forma predeterminada, no hay tiempo de espera de conexión, salvo el implementado por las bibliotecas del sistema.
--read-timeout=seconds
Establezca el tiempo de espera de lectura (y escritura) en segundos.
El "tiempo" de este tiempo de espera se refiere al tiempo de inactividad: si, en cualquier momento de la descarga, no se reciben datos por más tiempo de los especificados, la lectura falla y la descarga se reinicia.
Esta opción no afecta directamente la duración de la descarga completa.
Supongo que usando algo como
wget -O - -q -t 1 --timeout=600 http://www.example.com/cron/run
debe asegurarse de que no haya tiempo de espera antes de la duración de su secuencia de comandos.
(Sí, esa es probablemente la solución más brutal posible ^^)
El tiempo de espera predeterminado es de 900 segundos. Puede especificar tiempo de espera diferente.
-T seconds
--timeout=seconds
El valor predeterminado es volver a intentar 20 veces. Puede especificar diferentes intentos.
-t number
--tries=number
enlace: wget man document