Este post es parte de la serie para hacer más eficiente el consumo de Internet, consumo que los cubanos debemos estar optimizando casi de manera permanente.
Por todos es conocido que hay ciertos horarios donde el costo de la conexión es más barata ya que el uso del ancho de banda en el canal compartido es menor. Normalmente estos horarios son de madrugada. Si la descarga requiere monitoreo nuestro pues no nos queda más remedio que estar despiertos mientras se hace y llevar control del proceso, pero en muchas ocasiones no es necesario tal control por parte del usuario, así que podemos programarla con alguna herramienta que la haga por nosotros en el horario especificado y así dedicamos la noche a dormir y cuidar nuestro cuerpo y cerebro :)
Veremos 4 opciones para programar en el futuro una descarga de un archivo desde Internet. Dos de maneras gráficas y dos por comandos en la consola.
Con esta aplicación multiplataforma es muy cómodo programar la descarga, en la ventana para añadir la URL a descargar marque la opción Scheduler o Programador y seleccione la hora de inicio de la descarga, si es un archivo muy grande y no deseas que la descarga continue después de cierto horario pues también puedes indicarle a este gestor de descargas que la ponga en pausa si al llegar a ese momento todavía no ha culminado la descarga.
En la imagen también vemos que esta herramienta nos permite programar descargas recurrentes, esto es útil cuando la misma URL es actualizada periódicamente con contenido que nos interesa.
Con esta aplicación para Android también es simple programar una descarga. Cuando se añade se marca el planificador y se selecciona el intervalo de horario deseado dónde la app estará descargando.
Esta app la he usado par de veces para descargar usando los datos móviles en el horario de la madrugada cuando la única alternativa posible en Cuba descuenta los megas al 50%. Debe dejar los datos móviles encendidos, no hay manera de que un app pueda encender o apagar por sí sola los datos, en ocasiones el primer archivo de la lista da error y no se descarga, eso puede deberse a que la radiobase no mantiene despierta la conexión con el dispositivo si no hay actividad por mucho tiempo, por lo que es acconsejable que se añada al inicio de la lista un archivo de poco espacio como "señuelo" para que al momento de iniciarse las descargas programadas ese archivo active la conexión entre el dispositivo y la radiobase.
Esta opción es la más rica y dónde más variantes puedes probar
debido que es la más cercana a las habilidades de programación.
Traigo dos formas, una usando crontab -e
y la otra usando el
comando sleep
.
Primeo veamos un resumen de estos comandos:
$ whatis wget crontab
wget (1) - The non-interactive network downloader.
crontab (1) - maintains crontab files for individual users
crontab (1p) - schedule periodic background work
crontab (5) - files used to schedule the execution of programs
Como vemos Linux tiene un demonio llamado cron que permite programar tareas a ejecutarse periodicamente. Para ello ejecutamos
$ crontab -e
Esto nos abre un editor en el cual ponemos
0 2 * * * wget [URL]
Reemplaza [URL] por el archivo que quieras descargar
y cierra el editor guardando lo cambios.
La expresión 0 2 * * *
le dice a cron que ejecute
el comando wget
a las 2am cada día. Para más información
sobre como construir expresiones de cron puede
auxiliarse de herramientas como
cron-expression-generator.
Supongamos ahora que deseamos descargar un video de youtube.
Usaremos ahora youtube-dl
como alternativa a wget
, ya que
con wget
sería más complicado obtener la URL correcta del video
a descargar. Pero antes sería recomendable que leyeras este
post
que explica como instalar youtube-dl
.
Entonces lo haremos dejando la consola dormida cierto tiempo precalculado y ejecutando el comando que hace la descarga. Ejemplo, supongamos que son las 9pm y queremos que a las 2am comiece a descargarse este video https://www.youtube.com/watch?v=bQL2FsHe7G4.
$ sleep 5h ; youtube-dl https://www.youtube.com/watch?v=VDZQKD5BNYY
[youtube] VDZQKD5BNYY: Downloading webpage
[download] Destination: How To Clone Websites With wget _ Linux-VDZQKD5BNYY.mp4
[download] 100% of 17.31MiB in 00:15
Con sleep 5h
la consola se queda dormida por 5 horas y luego ejecuta el comando
a continuación del punto y coma. Otros ejemplos con sleep
:
$ whatis sleep
sleep (1) - delay for a specified amount of time
$ sleep 10 # espera 10 segundos
$ sleep 30m # espera 30 minutos
$ sleep 4h; sleep 20m # espera 4 horas y 20 minutos
$ sleep 1d; sleep 120m # espera 26 horas o un dia y dos horas
Bueno, hasta aquí este post, espero que sea de utilidad en su realación con
el consumo de Internet. Para otro post estaré explicando como usar
dos bots de telegram para obtener la URL descargable de videos de youtube y de esa
manera usar cualquier gestor de descarga, así no depender de youtube-dl
.