分页: 1 / 2
帮我写个脚本,每天两小时关机
发表于 : 2008-09-06 21:00
由 hellojinjie
网络的诱惑太大了
1,累计计算每天的开机时间(我可能上午开一个小时,晚上开一个小时)
2,累计时间到达两小时之前5分钟,跳出提示框提示,以后每五分钟提示一次
3,若当天开机时间累计超过二小时,则第二天不能开机
thanks in advance
发表于 : 2008-09-06 21:13
由 eexpress
*/5 * * * * 5分钟处理.bash
发表于 : 2008-09-06 21:14
由 delectate
eexpress 写了:*/5 * * * * 5分钟处理.bash

发表于 : 2008-09-06 21:23
由 hellojinjie
eexpress 写了:*/5 * * * * 5分钟处理.bash
要是我自己会shell编程,我就不会在这里求助了
发表于 : 2008-09-06 22:34
由 poet
hellojinjie 写了:eexpress 写了:*/5 * * * * 5分钟处理.bash
要是我自己会shell编程,我就不会在这里求助了
他贴的是 crontab 配置文件,不是shell编程
Re: 帮我写个脚本,每天两小时关机
发表于 : 2008-09-06 22:48
由 sinyadvan
hellojinjie 写了:
3,若当天开机时间累计超过二小时,则第二天不能开机
thanks in advance
何苦呢,何必呢,万一你有急事必须用机子怎么 办。根本不需要写这个脚本,自律。
发表于 : 2008-09-06 22:57
由 hellojinjie
poet 写了:hellojinjie 写了:eexpress 写了:*/5 * * * * 5分钟处理.bash
要是我自己会shell编程,我就不会在这里求助了
他贴的是 crontab 配置文件,不是shell编程

惭愧,有点看不懂
发表于 : 2008-09-06 23:03
由 eexpress
其实也没错。剩下的是要你自己编程bash。
如果你通过这次,折腾下,学会了bash编程。你也不需要这bash了啊。呵呵。
或者,你找到有5个人同意,需要这脚本,我就来写。
Re: 帮我写个脚本,每天两小时关机
发表于 : 2008-09-06 23:18
由 hellojinjie
sinyadvan 写了:hellojinjie 写了:
3,若当天开机时间累计超过二小时,则第二天不能开机
thanks in advance
何苦呢,何必呢,万一你有急事必须用机子怎么 办。根本不需要写这个脚本,自律。
我要是有这个毅力就好了
发表于 : 2008-09-06 23:21
由 xiooli
用uptime看登录时间呗,到2h就关机。
发表于 : 2008-09-06 23:25
由 hellojinjie
eexpress 写了:或者,你找到有5个人同意,需要这脚本,我就来写。
马甲算吗?
ee 拜托了,就一个小脚本,你只要随随便便动下手指头就写好了的。。
发表于 : 2008-09-06 23:39
由 hellojinjie
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 个星期后
发表于 : 2008-09-06 23:45
由 hellojinjie
代码: 全选
jj@hellojinjie:~/MyWork/java$ uptime
23:45:35 up 3:43, 5 users, load average: 0.31, 0.26, 0.30
ee 救救我吧,今天又差不多玩了四个钟头了
发表于 : 2008-09-06 23:59
由 yjcong
比较笨的方法, 我这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
发表于 : 2008-09-08 21:17
由 bones7456
3,若当天开机时间累计超过二小时,则第二天不能开机
谁能做到这点?最多做到一进系统就退出吧。。。