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

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
我就是我2
帖子: 1215
注册时间: 2008-12-13 10:55
来自: the Earth
联系:

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

#1

帖子 我就是我2 » 2011-08-23 23:32

晚上睡觉的时候经常要下载东西, 当一定时间内,流量过小,开机显得不低碳.所以写个关机脚本

使用方法:
脚本以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
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”


dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
头像
monk
帖子: 19507
注册时间: 2010-01-28 10:45

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

#2

帖子 monk » 2011-08-23 23:44

有的下载软件有下载完关机的选项

*********宁静致远*********
如果我说的有什么不对,请看签名第一行
头像
我就是我2
帖子: 1215
注册时间: 2008-12-13 10:55
来自: the Earth
联系:

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

#3

帖子 我就是我2 » 2011-08-23 23:52

monk 写了:有的下载软件有下载完关机的选项
是的,有的,并非所有.
你提的是另外一个问题: 下载完成关机.
我关注的问题是:一定时间内网络流量(不管下载完成与否).
焦点不同.
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”


dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
头像
monk
帖子: 19507
注册时间: 2010-01-28 10:45

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

#4

帖子 monk » 2011-08-23 23:57

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

*********宁静致远*********
如果我说的有什么不对,请看签名第一行
头像
vinoca
帖子: 59
注册时间: 2011-03-21 18:30

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

#5

帖子 vinoca » 2011-08-24 15:35

这个不错。
看我的自动待机脚本,判断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

头像
我就是我2
帖子: 1215
注册时间: 2008-12-13 10:55
来自: the Earth
联系:

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

#6

帖子 我就是我2 » 2011-08-24 16:20

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

具体脚本跟硬件的关系还是很大的。
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”


dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
回复