码迷,mamicode.com
首页 > 其他好文 > 详细

yate学习--./yate/tools/log_rotate.sh

时间:2015-04-22 22:22:18      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

    从还没有毕业开始就开始写服务器上面的代码,不管是C/S还是B/S都基本接触过和实现过了,从最开始的socket通信,到移植boa,实现cgi,摸索voip server,web server(php--phalcon),维护过web server(java-ssh)。接触yate server的时间是最久的,也是第一次对一个系统有比较全的认识。日志-后台运行-运行脚本-服务安装-打包部署安装-性能测试。

    今天看到了里面的日志部分,实现的机制和方法比我之前使用的都好一些,把个人的理解贴出来,从而加深自己对日志的认识吧。

    下面的代码就是./yate/tools/log_rotate.sh的内容

# Assumes Yate writes to /var/log/yate and /var/log/yate-cdr.tsv

# You can place this script in /etc/cron.hourly and not use the system logrotate
# NOTE: Files are never deleted! Periodic cleanup is required

base="/var/log"
old="$base/yate-old"
ym=`date '+%Y-%m'`
d=`date '+%d'`
h=`date '+%H'`

mkdir -p "$old/$ym/$d"
mv "$base/yate" "$old/$ym/yate-$d-$h.log"
mv "$base/yate-cdr.tsv" "$old/$ym/$d/yate-cdr-$h.tsv"

/bin/kill -HUP `/bin/cat /var/run/yate.pid`
    先说说我的理解:

确保yate把日志写入/var/log/yate和/var/log/yate-cdr.tsv(我没有使用yate-cdr.tsv)

你可以将这个脚本放在/etc/cron.hourly文件夹(是linux下面一个每小时都会执行一次的计划)里面,并且不用使用系统的logrotate(linux系统的一个日志工具)

日志文件永远不会被删除,只会定期的清理

脚本的含义大致是这样的,(每小时都会执行的)

base="/var/log"
old="$base/yate-old"
定义了存放老日志文件的目录/var/log/yate-old

ym=`date '+%Y-%m'`
d=`date '+%d'`
h=`date '+%H'`
获取时间的年月、日、小时。如“2015-04”、“22”、“19”

mkdir -p "$old/$ym/$d"
递归创建存放老日志文件的目录

mv "$base/yate" "$old/$ym/yate-$d-$h.log"
mv "$base/yate-cdr.tsv" "$old/$ym/$d/yate-cdr-$h.tsv"

将日志文件该成老日志文件名字(/var/log/yate-old/2015-04/yate-22-19.log)

/bin/kill -HUP `/bin/cat /var/run/yate.pid`
重新运行yate(/var/run/yate.pid文件存放的是yate进程的进程号)


对比linux的日志工具logrotate的效果,肯定是要先了解这个工具的。

如果不记得了这个工具的基本用法。

这里贴一个转载的博客文章,大家可以看看

http://hao360.blog.51cto.com/5820068/1344732


认为还是采用日志工具logrotate比较方便。不过这种方式比较灵活,看自己的需求,原理实际上是一样的。


今天只是给大家看了脚本部分的转存和回滚,实际的日志输出在程序里面。

yate学习--./yate/tools/log_rotate.sh

标签:

原文地址:http://blog.csdn.net/u012377333/article/details/45199417

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!