帮我写个脚本,每天两小时关机

sh/bash/dash/ksh/zsh等Shell脚本
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

帮我写个脚本,每天两小时关机

#1

帖子 hellojinjie » 2008-09-06 21:00

网络的诱惑太大了

1,累计计算每天的开机时间(我可能上午开一个小时,晚上开一个小时)

2,累计时间到达两小时之前5分钟,跳出提示框提示,以后每五分钟提示一次

3,若当天开机时间累计超过二小时,则第二天不能开机

thanks in advance
Say hello to everyday!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2008-09-06 21:13

*/5 * * * * 5分钟处理.bash
● 鸣学
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

#3

帖子 delectate » 2008-09-06 21:14

eexpress 写了:*/5 * * * * 5分钟处理.bash
:em28
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

#4

帖子 hellojinjie » 2008-09-06 21:23

eexpress 写了:*/5 * * * * 5分钟处理.bash
要是我自己会shell编程,我就不会在这里求助了
Say hello to everyday!
poet
帖子: 2841
注册时间: 2006-09-11 22:47

#5

帖子 poet » 2008-09-06 22:34

hellojinjie 写了:
eexpress 写了:*/5 * * * * 5分钟处理.bash
要是我自己会shell编程,我就不会在这里求助了
他贴的是 crontab 配置文件,不是shell编程
头像
sinyadvan
帖子: 724
注册时间: 2008-04-02 15:36
来自: O_O

Re: 帮我写个脚本,每天两小时关机

#6

帖子 sinyadvan » 2008-09-06 22:48

hellojinjie 写了: 3,若当天开机时间累计超过二小时,则第二天不能开机
thanks in advance
何苦呢,何必呢,万一你有急事必须用机子怎么 办。根本不需要写这个脚本,自律。
^o^ && O_O && ^_^
One World|One Dream|One Piece
愛 ^_^ 這個 美麗的世界O_O

本公司专治各种不服、不爽、谩骂、挑衅。
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

#7

帖子 hellojinjie » 2008-09-06 22:57

poet 写了:
hellojinjie 写了:
eexpress 写了:*/5 * * * * 5分钟处理.bash
要是我自己会shell编程,我就不会在这里求助了
他贴的是 crontab 配置文件,不是shell编程
:shock: 惭愧,有点看不懂
Say hello to everyday!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#8

帖子 eexpress » 2008-09-06 23:03

其实也没错。剩下的是要你自己编程bash。
如果你通过这次,折腾下,学会了bash编程。你也不需要这bash了啊。呵呵。
或者,你找到有5个人同意,需要这脚本,我就来写。
● 鸣学
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

Re: 帮我写个脚本,每天两小时关机

#9

帖子 hellojinjie » 2008-09-06 23:18

sinyadvan 写了:
hellojinjie 写了: 3,若当天开机时间累计超过二小时,则第二天不能开机
thanks in advance
何苦呢,何必呢,万一你有急事必须用机子怎么 办。根本不需要写这个脚本,自律。
我要是有这个毅力就好了
Say hello to everyday!
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#10

帖子 xiooli » 2008-09-06 23:21

用uptime看登录时间呗,到2h就关机。
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

#11

帖子 hellojinjie » 2008-09-06 23:25

eexpress 写了:或者,你找到有5个人同意,需要这脚本,我就来写。
马甲算吗?

ee 拜托了,就一个小脚本,你只要随随便便动下手指头就写好了的。。
Say hello to everyday!
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

#12

帖子 hellojinjie » 2008-09-06 23:39

xiooli 写了:用uptime看登录时间呗,到2h就关机。
我要计算是一天累计的开机时间,我可能会上午开一会电脑,晚上再开会电脑。

我是这样想的:
1.开机的时候得到开机时间,记录在一个文件中,

代码: 全选

2008-09-06 22:20  up
2.开机五分钟后将现在时间记录在文件中,以后每五分钟更新这个时间

代码: 全选

2008-09-06 22:20  up
2008-09-06 22:25 now
并与开机时间比较,是否超过1小时55分,如果是就提醒关机,以后每隔五分钟提醒一次

3.每次开机检测文件中 now 的时间记录,将 now 改为 shutdown ,
并计算前一天的开机时间,若超过2小时则halt,没超过就记录现在时间,注意同一天可能会有多个up 和shutdown
(没有用关机脚本将 now 改为 shutdown 是因为可能关机是非正常关机)

代码: 全选

2008-09-06 22:20  up
2008-09-06 22:25  shutdown
2008-09-07 20:35  up
不过要等我写出来就要 n 个星期后
上次由 hellojinjie 在 2008-09-06 23:47,总共编辑 1 次。
Say hello to everyday!
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

#13

帖子 hellojinjie » 2008-09-06 23:45

代码: 全选

jj@hellojinjie:~/MyWork/java$ uptime
 23:45:35 up  3:43,  5 users,  load average: 0.31, 0.26, 0.30
ee 救救我吧,今天又差不多玩了四个钟头了
Say hello to everyday!
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#14

帖子 yjcong » 2008-09-06 23:59

比较笨的方法, 我这crontab有问题, 用的是“at”.

保存为 /root/times .你每次开机手动运行, 或设为开机自动运行(我不知道该如何搞). 可以选A方案, 前一天超过120min,第2天不能用。 或B方案,每天150min。

代码: 全选

#!/bin/bash
##################
now=`uptime|awk -F"up" '{print $2}'|awk -F"," '{print$1}'`
h=`echo $now|awk -F":" '{print $1}'`
m=`echo $now|awk -F":" '{print $2}'`
##################
date_o=`less $HOME/times_120data|head -n1`
date_n=`date +%y%m%d` 
if [ "$date_o" != "$date_n" ];then
   tem="$date_n""-""$date_o"
   dat=`echo $tem|xargs -i awk 'BEGIN{print {}}'`
   tim_n=`echo $h"*"60"+"$m|xargs -i awk 'BEGIN{print {}}'`
   #################
   ###AAAAAAAAAAAAAA
   if (( $dat == 1 )) && (( $tim_n > 120 ));then
       poweroff
   fi
   ###AAAAAAAAAAAAAA
   #################
else
   tim_o=`less $HOME/times_120data|tail -n1`
   tim_n=`echo $h"*"60"+"$m+$tim_o|xargs -i awk 'BEGIN{print {}}'`     
fi
##################
date +%y%m%d > $HOME/times_120data
echo $tim_n >> $HOME/times_120data 
##################
###BBBBBBBBBBBBBBB
#if (( $tim_n >145 ));then
#poweroff
#fi
###BBBBBBBBBBBBBBB
##################
if (( "$tim_n" > 109 ));then
export DISPLAY=:0. && xmessage -c "=============time is up=================" -button you,need,to,turn,off,the,computer
fi  
##################
cont="export DISPLAY=:0. && /root/times" 
ontop="sleep 1 &&export DISPLAY=:0. && wmctrl -r xmessage -b toggle,above" 
echo $cont|at now + 5min
echo $ontop|at now +5min
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#15

帖子 bones7456 » 2008-09-08 21:17

3,若当天开机时间累计超过二小时,则第二天不能开机
谁能做到这点?最多做到一进系统就退出吧。。。
关注我的blog: ε==3
回复