如何找出正在运行的Linux机器是否闲置

我有我的笔记本电脑,大部分时间连接到互联网,互联网的速度是相当缓慢的。 当我下载一些大的文件,然后我无法上网冲浪,因为互联网的速度很慢。 我的计划是编写一个bash脚本并在cron作业中运行它,当它发现系统处于空闲状态时,它会自动启动一个进程(这个进程会自动下载大文件),当我使用笔记本电脑时,进程是杀害。 类似于屏幕保护程序(我已经find了一些Linux中的调度方式:计算机闲置(=没有用户input)时运行任务,但我不使用我的机器上的屏幕保护程序既不想取决于像xscreensaver的gnome应用程序)。 我使用Ubuntu的Linux,有没有办法find一个Linux mahine适当的空闲时间。

闲置=没有键盘,触摸板或鼠标点击。

有没有办法以这种方式findnetworking活动,就像他们没有互联网stream量,然后我开始执行另一个wget脚本,如果我的浏览器请求网页,那么它将停止执行脚本。

请build议我一个正确的方法..我应该使用空闲时间,这将是更有效的,如果我使用networkingstream量的考虑。

有一种方法,但它很hacky。 你可以听相应的设备(在/ dev区域)。

例如,在我目前的机器上:

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

生成一个完整的字节负载,如果我输入和块(输出什么),如果我不是。 类似的东西应该为鼠标工作,但似乎并没有在我的系统上。

默认情况下,输入设备的权限是非常严格的,您可能需要chgrp(例如)。 我绝对不会留下类似root的东西! 请注意,有很多可能的安全隐患与dev中的权限有关。 如果是共享框,我肯定不会考虑这个。

这不是一个简单的程序来写(你也许可以做到这一点的脚本信号彼此,但我个人不会),使用像xscreensaver(甚至只是CPU使用情况)会更简单(但也许更少有趣)。

我建议一个更简单的方法:告诉wget它可能吃多少带宽,留下一些空闲的网上冲浪。

只要使用:

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