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

sh/bash/dash/ksh/zsh等Shell脚本
头像
想入非非
帖子: 8078
注册时间: 2008-07-14 22:42
来自: Beijing
联系:

#16

帖子 想入非非 » 2008-09-09 0:09

建议LZ每天用2小时学习bash编程
Ubuntu User
头像
keky
帖子: 231
注册时间: 2007-12-20 15:08
来自: harbin
联系:

#17

帖子 keky » 2008-09-10 19:57

其实想控制上机时间很简单吗。。每次开机就: shutdown hh:mm 计算一下时间就ok。不用非得什么shell脚本
头像
daf3707
论坛版主
帖子: 12739
注册时间: 2007-06-13 15:57
来自: 在他乡

#18

帖子 daf3707 » 2008-09-10 20:32

bones7456 写了:
3,若当天开机时间累计超过二小时,则第二天不能开机
谁能做到这点?最多做到一进系统就退出吧。。。
这超过两个小时的功能,需要CIH一般的功能才行
头像
zcg0696
帖子: 44
注册时间: 2008-05-27 17:30

#19

帖子 zcg0696 » 2008-09-10 23:09

没什么用,这种事要靠自已的努力,程序用不上两天估计你自已就给删了
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

#20

帖子 cnkilior » 2008-09-11 15:52

我懒了,本来写了一个,但发现不好就删掉了。
现在又有了新想法。
但要确定你的意图。但是我的只能工作在tty、pts中,属于命令行脚本。
1、你要在5分钟前有提示
2、如果你想不在2小时后关机,就需要互交(read)

---
于是程序应该是后台运行,并且要在需要互交时变成前台。这是设计的难点!

----
首先应该判断上一次是否正常结束了。

代码: 全选

NowDate=`date|awk '{print $3}'`
Yesdate=$(($NowDate-1))
FileDate=`awk '{print $1}' < ~/.ifpoweroff`
Ifdown=`awk '{print $2}' < ~/.ifpoweroff`

trap "echo You must answer the question" 2 15
panduan()
{
    if [ $FileDate == $NowDate ]
    then
	poweroff
    elif [ $FileDate == $Yesdate ]&&[ $Ifdown == 1 ]
    then
	poweroff
    fi
}
当然为了程序不出错最好能在开头判断~/.ifpoweroff是否存在。
然后开始倒数读秒
我使用的是

代码: 全选

if sleep xxx
then
CMD
fi
的结构
到了还剩5分钟时也就是6900秒后给出一个echo提示结束工作。(当然5分钟保存作业,时间太长)

等到了2小时,这个时候要把程序提到前台(原先程序是在后台的,不然会影响工作)

这里我用了一个小窍门。

把这个程序放到~/.bashrc里面调用并后台执行。
当两小时到了,则脚本用

代码: 全选

kill -30 $PIDofSHELL
$PIDofSHELL要自己去取!

在此之前,bash在bashrc中已经执行了

代码: 全选

trap "fg 1" 30
这样就把这个脚本提到前台了。于是就能read了!

代码没有完成,懒得完成,这种事情还是要自觉。程序这种东西很容易钻空子。例如,你在5分钟提示后就关机了,程序就那你没有办法了。当然kill他,可以捕获信号。

---
但有了图形界面这种程序就显得毫无意义!
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#21

帖子 xiooli » 2008-09-11 15:58

ls,提示信息和选择信息可以用zenity弹出窗口,不用前台后台的提来提去。
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

#22

帖子 cnkilior » 2008-09-11 17:04

不好意思,我没有那么高级的工具。。


rh9。
xf3i
帖子: 82
注册时间: 2007-08-03 14:37

#23

帖子 xf3i » 2008-09-11 18:03

workrave
chasye
帖子: 333
注册时间: 2007-05-13 15:20

#24

帖子 chasye » 2008-09-11 18:58

看看这个, 还没测试过, 可能还要修改一下

atstart放到到/etc/init.d里, 用update-rc.d设置一下
cron放到某个目录,加入到cron就行了

依赖perl和zenity
附件
script.tar.bz2
(850 Bytes) 已下载 49 次
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

#25

帖子 hellojinjie » 2008-09-11 22:01

谢谢各位,这几天在看 shell script ,只是现在还不足以看懂各位的脚本,

有个问题就是 poweroff 是要root 才能执行的.
我记得论坛中有个帖子是讨论过这个,不过忘了收藏了,现在找不到了
Say hello to everyday!
hgshlg
帖子: 222
注册时间: 2007-08-30 14:45

#26

帖子 hgshlg » 2008-09-12 0:44

xf3i 写了:workrave
:D
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#27

帖子 yjcong » 2008-09-12 4:16

cnkilior 写了:不好意思,我没有那么高级的工具。。


rh9。
rh9再老也应该有xmessage吧
有个问题就是 poweroff 是要root 才能执行的.
好像给普通用户加个权限就可以运行了
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
lovexiaoo
帖子: 34
注册时间: 2008-05-11 19:37
来自: 南京

#28

帖子 lovexiaoo » 2008-09-12 17:44

关键是自律,不然就卖电脑吧
回复