Sign in to follow this  
R91

Limitar velocidad descarga FTP según hora (Download Station)

Recommended Posts

Hola,

 

Tengo Xpenology con DMS 5.0 4528 Update 2 (aunque probé la 5.1 hasta que se descubrió el bug y tampoco pude).

 

El caso es que uso Download Station para descargar desde un servidor FTP al NAS y lo que quiero es limitar la descarga por el día y subir la limitación por la noche. En Download Station solo se puede hacer eso para las decargas bt mediante su planificador, pero no para el FTP, para FTP y HTTP solo puedo limitar la descarga por tarea (es decir por descarga) y el número de tareas que pueden descargar a la vez.

 

El problema es que si no limito la bajada por el día se me come todo el ancho de banda, una opción sería limitarlo siempre pero por la noche prefiero que descargue al máximo. Mi router no tiene opciones de QoS por lo que no puedo controlar el trafico para priorizar otros y se come todo el ancho. Desde la opción de control del tráfico de DSM tampoco me sirve puesto que solo es para controlar el trafico del nas.

En las opciones de limite de velocidad de los usuarios solo puedo limitar algunos servicios que ya salen pero no añadir yo un puerto ni decir ninguna aplicación (o no se).

 

La verdad es que ya no se que hacer, por ahora la solución esta en programar tarea que detiene Download Station por la mañana y lo ejecuta por la noche pero claro, así durante el día no descarga nada.

 

Un saludo.

Share this post


Link to post
Share on other sites

Bueno me he hecho un apaño.

 

Download Station usa wget para las descargas FTP y HTTP, por lo tanto lo que hecho ha sido crear un fichero de configuración de wget con el limite de velocidad.

El archivo es un archivo de texto normal llamado .wgetrc en este archivo pongo:

limit_rate = 2000k

Para limitar a 2000Kbps

 

Este archivo lo tenemos que guardar en /root/

 

Bien pues lo que he hecho ha sido crearme dos de estos archivos, uno llamado .wgetrcdia y otro .wgetrcnoche y guardarlos también /root y después dos scripts en sh, uno llamado dia.sh que contiene:

#!/bin/sh

cp -f /root/.wgetrcdia /root/.wgetrc

 

Y lo que hace es copiar el archivo .wgetrcdia a .wgetrc sobreescribiendo si ya existe. Y otro script llamado noche.sh, haciendo lo mismo pero con el otro archivo:

.#!/bin/sh

cp -f /root/.wgetrcnoche /root/.wgetrc

 

Y por ultimo ya solo queda desde el Panel de Control de DSM crear una nueva tarea programa a la hora que quieras para que ejecute el script dia.sh y otra para noche.sh

Para que el cambio haga efecto tienes que programar otra tarea que detenga el servico Download Station y otra para que lo vuelva a arrancar, si no no cogerá los cambios en /root/.wgetrc

 

Saludos!

Share this post


Link to post
Share on other sites
Ya veo que has dado con la solución.

 

:mrgreen:

 

Aún no lo he probado, pero debería funcionar, a ver si tengo tiempo y lo hago. También vi un script para usar Download Station por línea de comandos:

http://downloadstation.jroene.de/

 

Si funciona bien, se puede usar para pausar las descargas, cambiar el archivo .wgetrc para aplicar el límite de velocidad y volver a reanudarlas.

Al final la cosa quedaría así:

#!/bin/sh
downloadstation pause all
sleep 15
rm -f /root/.wgetrc
echo "limit_rate = 800k" >> /root/.wgetrc
sleep 15
downloadstation resume all

 

Así pausaría las descargas, esperaría 15 segundos, borraría el archivo /root/.wgetrc si existe, luego crearía un nuevo /root/.wgetrc con el limite, esperaría otros 15 segundos y reanudaría las descargas. Así no haría falta lo del archivo .wgetrcdia y .wgetrcnoche que era un aún más chapuza la verdad :lol: .

 

Saludos!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this