专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>shell脚本欣赏>

拨号计时的shell脚本

百度收藏 QQ搜藏

作者:javalee

代码:

[/home/javalee]cat ~/myshell/ppp
#!/bin/ksh
#本脚本用于统计每次拨号上网所耗时间,用帽拨号的也许用得着.
#放在/etc/rc.d/rc.local中,/xxx/xxx/ppp&,脚本要用绝对路
#径!另外将
#数据文件改成666即可
#
#脚本开始
#建立函数_ps,便于重复调用.
function _ps { ps -e|grep pppd; }
line=$(cat /home/javalee/.log.txt|wc -l)
#进入主循环.
#
while true;do

#辅循环,如果pppd进程存在,则跳过此循环,否则等待.
        until _ps>/dev/null 2>&1;do
                sleep 1
        done

#pppd进程存在,找出进程启动时间.并将此时间添加至文件/home/javalee/.log.txt
        echo "上线时间:$(date +%T)" >>/home/javalee/.log.txt
        uptime=$(date +%s)

#辅循环,pppd进程存在,则等待,否则,将当前时间添加至文件/home/javalee/.log.txt
        while _ps >/dev/null 2>&1;do
                sleep 1
        done
        echo "下线时间:$(date +%T)" >>/home/javalee/.log.txt
        downtime=$(date +%s)

#pppd进程已经不复存在,统计时间.并将结果添加至文件/home/javalee/.log.txt
((result_time=$downtime-$uptime))
H=$(($result_time/3600))
M=$(($result_time%3600))
if [[ $M -ge 59 ]];then
        M1=$(($M/60));M2=$(($M%60))
        echo "第$line次上网在$(date +%m月%d日):用时:$H小时$M1分$M2秒">>/home/javalee/.log.txt
else
        echo "第$line次上网在$(date +%m月%d日):用时:$H时$M分0秒">>/home/javalee/.log.txt
fi
((line+=1))
#继续主循环.
        continue
done


写了这个脚本,每次我就知道我每次上网的时间,用时多少啦。

上一篇:查询用户登录总时间shell脚本 下一篇:一个利用suspend控制终端的shell脚本

power by soyo123 2007-2008