分页: 1 / 1

监视网络流量决定是否关机--欢迎指导(交流分享)

发表于 : 2011-08-23 23:32
我就是我2
晚上睡觉的时候经常要下载东西, 当一定时间内,流量过小,开机显得不低碳.所以写个关机脚本

使用方法:
脚本以root权限运行或者在/etc/sudoers添加下面一行
ALL ALL=NOPASSWD:/sbin/poweroff
又或者使用 xdotool 来控制光标来实现关机.

代码: 全选

#!/bin/bash
# 600s/10m 内下载量小于3MB,则关机
while :
do
old=`ifconfig eth0 | awk -F'[:(]' '/bytes/{print $2}'`
new=`sleep 600;ifconfig eth0 | awk -F'[:(]' '/bytes/{print $2}'`
var=`expr $new - $old`
# bytes to MB 1024^2*3=3145728
[ $var -lt 3145728 ] || sudo poweroff 
done

Re: 监视网络流量决定是否关机--欢迎指导(交流分享)

发表于 : 2011-08-23 23:44
monk
有的下载软件有下载完关机的选项

Re: 监视网络流量决定是否关机--欢迎指导(交流分享)

发表于 : 2011-08-23 23:52
我就是我2
monk 写了:有的下载软件有下载完关机的选项
是的,有的,并非所有.
你提的是另外一个问题: 下载完成关机.
我关注的问题是:一定时间内网络流量(不管下载完成与否).
焦点不同.

Re: 监视网络流量决定是否关机--欢迎指导(交流分享)

发表于 : 2011-08-23 23:57
monk
我就是我2 写了:
monk 写了:有的下载软件有下载完关机的选项
是的,有的,并非所有.
你提的是另外一个问题: 下载完成关机.
我关注的问题是:一定时间内网络流量(不管下载完成与否).
焦点不同.
这个不错 :em11

Re: 监视网络流量决定是否关机--欢迎指导(交流分享)

发表于 : 2011-08-24 15:35
vinoca
这个不错。
看我的自动待机脚本,判断CPU占用率,磁盘读写(这个不准确,尚待改进),流量及是否运行特定的程序决定待机。用xautolock检测:

代码: 全选

#!/bin/bash

net_card=`iwconfig 2>&1 | sed -n '/802.11g /s/\(wlan.\).*/\1/p'`
[ -z $net_card ] && net_card=`iwconfig 2>&1 | sed -n '/802.11bgn /s/\(wlan.\).*/\1/p'`
[ `top -b -n2 | sed -n '/^Cpu/s/.* \(.*\)\..*%us.*/\1/p' | tail -1` -lt 5 ] &&\
[ $(expr $( (expr $(vmstat | awk 'NR==3 {print $6}') - $(sleep 1;vmstat | awk 'NR==3 {print $6}')) | tr -d '-')) -lt 5 ] &&\
[ $((expr $(expr $(ifconfig $net_card | sed -n '/RX bytes:/s/.*:\([^ ]*\) .*/\1/p') - $(sleep 1;ifconfig $net_card | sed -n '/RX bytes:/s/.*:\([^ ]*\) .*/\1/p')) + $( expr $(ifconfig $net_card | sed -n '/RX bytes:/s/.*TX bytes:\([^ ]*\) .*/\1/p') - $(sleep 1;ifconfig $net_card | sed -n '/RX bytes:/s/.*TX bytes:\([^ ]*\) .*/\1/p'))) | tr -d '-') -lt 5120 ] &&\
[ ! `pgrep mplayer` ] &&\
sudo pm-suspend


Re: 监视网络流量决定是否关机--欢迎指导(交流分享)

发表于 : 2011-08-24 16:20
我就是我2
vinoca 写了:这个不错。
看我的自动待机脚本,判断CPU占用率,磁盘读写(这个不准确,尚待改进),流量及是否运行特定的程序决定待机。用xautolock检测:

代码: 全选

#!/bin/bash

net_card=`iwconfig 2>&1 | sed -n '/802.11g /s/\(wlan.\).*/\1/p'`
[ -z $net_card ] && net_card=`iwconfig 2>&1 | sed -n '/802.11bgn /s/\(wlan.\).*/\1/p'`
[ `top -b -n2 | sed -n '/^Cpu/s/.* \(.*\)\..*%us.*/\1/p' | tail -1` -lt 5 ] &&\
[ $(expr $( (expr $(vmstat | awk 'NR==3 {print $6}') - $(sleep 1;vmstat | awk 'NR==3 {print $6}')) | tr -d '-')) -lt 5 ] &&\
[ $((expr $(expr $(ifconfig $net_card | sed -n '/RX bytes:/s/.*:\([^ ]*\) .*/\1/p') - $(sleep 1;ifconfig $net_card | sed -n '/RX bytes:/s/.*:\([^ ]*\) .*/\1/p')) + $( expr $(ifconfig $net_card | sed -n '/RX bytes:/s/.*TX bytes:\([^ ]*\) .*/\1/p') - $(sleep 1;ifconfig $net_card | sed -n '/RX bytes:/s/.*TX bytes:\([^ ]*\) .*/\1/p'))) | tr -d '-') -lt 5120 ] &&\
[ ! `pgrep mplayer` ] &&\
sudo pm-suspend

具体脚本跟硬件的关系还是很大的。