
Manualmente ingreso una URL en un navegador que llama a una página que tiene una función GET que me solicita directamente que guarde un archivo. Me gustaría automatizar con un trabajo cron en un script estas acciones:
- Llame a la URL
- Guarde el archivo en una carpeta específica
¿Alguien puede ayudar a escribir el guión? Puedo proporcionar la URL de forma privada para probar el comportamiento.
Respuesta1
Una forma de descargar una URL sin tener que usar una interfaz de usuario (texto o GUI) es usarla wget
con todos los parámetros necesarios (como desee) como una tarea cron.
Acerca de wget
Un ejemplo para una única URL (con el nombre de salida combinado con una marca de tiempo, para enriquecer la respuesta, podría ser un nombre estático):
wget URL -O "/home/uname/dirn/`date +%y%m%d-%H%M%S`-n.htm" -b
wget URL -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-n.htm" -b #in crontab
nota: en cron tienes que usar "\%" (como en la segunda línea de arriba) en lugar de solo "%" (como en la primera línea de arriba), porque cron interpreta el carácter "porcentaje".
donde: se divide en:-O "/home..../
date...
-theRestOfTheName"
ruta absoluta (cron puede tener su propia ruta configurada, por lo que desde un punto de vista práctico, suele ser favorable tener la ruta de interés especificada en cada comando)
ejecución sobre la marcha
date
con salida configurada como una especie de marca de tiempo legible por humanosel resto del nombre del archivo de destino
-b
le pide a wget que trabaje en segundo plano, iniciando sesión en syslog.
Opcionalmente, puede utilizar una lista de URL de un archivo ( -i filename
). También puedes jugar con wget y su página de manual ( man wget
): es relativamente breve y puede darte muchas ideas.
Acerca de cron
Tenga en cuenta que cron supone que su máquina está encendida en todo momento: cron no se pone al día con los trabajos durante el tiempo que la máquina estuvo apagada. Editando cron como usuario actual
crontab -e
Agregue una línea de configuración que especifique la frecuencia de ejecución del comando (la instrucción simple se muestra como un comentario en las líneas superiores del editor crontab, léala). Para ejecutar cada 5 minutos el domingo, escribirías:
# m h dom mon dow command
*/5 * * * 0 wget google.com -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-ind3.htm" -b