Deseo obtener contenido de un script PHP en mi servidor dos veces al día, alterando una variable de consulta lang
para establecer el idioma que queremos y guardar este contenido en archivos de dos idiomas específicos. Este es mi crontab:
*/15 * * * * ~root/apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"
El problema es que solo se está ejecutando la primera línea de comando wget (o para ser precisos: el único archivo que se está escribiendo es /path/to/file-sv.sql
). Si cambio la segunda y la tercera fila, /path/to/file-en.sql
se escribe en su lugar. La primera línea siempre se ejecuta como se esperaba, sin importar dónde se encuentre.
Luego intenté usar lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sql
en vano; todavía solo la primera línea de lince se ejecutó correctamente. ¡Incluso mezclar wget y lynx no cambió esto!
¡Estoy un poco desesperado! ¿Me estoy perdiendo de algo? Hay miles de artículos sobre crontab (combinado con) wget o lynx, pero todos parecen cubrir configuraciones básicas y sintaxis. ¿Alguien tiene idea de lo que estoy haciendo mal?
Gracias
alexander
Respuestas:
Intente agregar nueva línea al final de su crontab.
fuente
Hay algo en el texto que está mal. Edite su crontab en vim y luego muestre caracteres invisibles.
Debería poder ver y luego corregirlo.
fuente
# crontab -e
EDITOR=vim crontab -e
$
al final de cada línea?Intente agregar redireccionamiento, para depurar crontab (o leer el correo raíz):
También ejecute 'wget -O /path/to/file-en.sql " http://mydomain.com/path/?lang=en "' desde la consola.
También use 'crontab -e' para validar el nuevo crontab.
Además, intente eliminar la línea que no funciona y vuelva a escribirla desde el teclado.
Copia de seguridad de corntab y comando de ejecución:
fuente
/tmp/crontab_ouptput 2> /tmp/crontab_error
solo funciona para la primera línea. Ejecutar el comando desde la consola funciona bien. Reescribí todo el archivo con mis propias manos, pero nada cambió.Acabo de pasar un tiempo probando las respuestas anteriores (agregando nuevas líneas, eliminando nuevas líneas, etc.) en un sistema que ejecuta cronie . Finalmente se encontró que hay un error en cronie 1.5.3 que solo ejecuta el primer trabajo cron para cada usuario . Está arreglado en 1.5.4
https://github.com/cronie-crond/cronie/issues/30
Espero que esto ahorre algo de tiempo ...
fuente