2010-08-18 8 views
5

Tengo mi computadora portátil, la mayoría de las veces conectada a internet, la velocidad de internet es bastante lenta. Cuando descargo algunos archivos grandes, no puedo navegar en los sitios web debido a la baja velocidad de Internet. Mi plan es escribir un script bash y ejecutarlo en trabajos cron, cuando encuentre que el sistema está inactivo, entonces comienza un proceso (el proceso que descargará los archivos grandes preferiblemente wget) automáticamente y cuando uso el portátil, entonces el proceso es delicado. Similar a un salvapantallas (he encontrado algunas formas en Scheduling in Linux: run a task when computer is idle (= no user input) pero no uso salvapantallas en mi máquina ni quiero depender de la aplicación gnome como xscreensaver). Uso Ubuntu Linux, ¿hay alguna manera de encontrar el tiempo de inactividad adecuado de un mahine de Linux?Cómo saber que una máquina con Linux en funcionamiento está inactiva o no

inactivo = sin teclado, teclado táctil o clics del mouse.

¿Hay alguna forma de encontrar actividad de red de tal manera, como si no hubiera tráfico de Internet entonces mi sript comienza a ejecutar otro script wget y si mi navegador solicita páginas web, entonces dejará de ejecutar el script.

por favor sugiérame una manera adecuada .. ¿Debería implementarlo usando el tiempo de inactividad, será más eficaz si uso el tráfico de red en consideración.

+0

¿Ha considerado la conformación del tráfico? –

+0

@chen ¿cómo hacerlo en el sistema local? ¡¡no tengo ni idea!! –

+1

Supongo que puedes usar shorewall para eso como se explica en http://www.shorewall.net/simple_traffic_shaping.html –

Respuesta

0

Recomendaría un método mucho más simple: Solo dígale a wget cuánto ancho de banda se puede comer, para dejar algo gratis para navegar en la web.

sólo tiene que utilizar:

wget --limit-rate=1.5k http://example.com 
+0

No quiero poner límite de ancho de banda para mis descargas, porque no serviré mientras el sistema esté inactivo. –

+0

El único otro método sería un script personalizado ejecutado como un "protector de pantalla". MUCHO más difícil, y dependiendo de cuánto tiempo su sistema esté inactivo, puede que no sea más rápido incluso. –

+0

es la única manera de hacerlo ... me pregunto cómo se ha implementado el protector de pantalla. Espero que pueda obtener alguna pista de él ... –

3

hay una forma pero es bastante hacky. Puede escuchar los dispositivos apropiados (en el área/dev).

Por ejemplo, en mi máquina actual:

sudo cat /dev/input/by-path/platform-i8042-serio-0-event-kbd 

Genera una carga entera de bytes si estoy escribiendo y bloquea (salidas de la nada) si no estoy. Algo similar debería funcionar para el mouse pero no parece en mi sistema.

De forma predeterminada, los permisos para los dispositivos de entrada son bastante estrictos, es posible que desee extraerlos (por ejemplo). ¡Definitivamente no dejaría correr algo así como root! Tenga en cuenta que hay muchas posibles implicaciones de seguridad al jugar con los permisos en el desarrollo. Definitivamente no consideraría esto si se trata de un cuadro compartido.

Este no es un programa simple para escribir (puedes hacerlo como un conjunto de scripts que se señalan entre sí, pero yo personalmente no) y usar algo como xscreensaver (o incluso solo el uso de CPU) sería más simple (pero tal vez menos divertido).

+0

que funciona para teclado, pero ... pero para mouse/touchpad no funciona incluso para mí ... –

Cuestiones relacionadas