yate学习--./yate/tools/log_rotate.sh
来源:互联网 发布:周杰伦杭州演唱会知乎 编辑:程序博客网 时间:2024/05/16 04:37
从还没有毕业开始就开始写服务器上面的代码,不管是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 requiredbase="/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
- yate学习--./yate/packingyate.logrotate
- yate学习--基于CentOS安装运行yate
- yate学习--关于yrtpchan模块
- Yate学习--基于Windows安装和运行Yate
- Yate设计
- yate 指南
- Yate设计
- yate教程
- yate.conf
- yate--sip server的学习过程
- yate学习--yateclass.h--class YATE_API GenObject
- yate学习--yateclass.h--class YATE_API Runnable
- yate学习--yateclass.h--class YATE_API Stream
- yate学习--yateclass.h--class YATE_API DebugEnabler
- yate学习--yateclass.h--class YATE_API Lockable
- yate学习--yate的认证方式--从文件认证(regfile.cpp)
- Yate 的架构
- C#学习第一天 入门简介
- hdu 1509 Windows Message Queue
- 鹰牌双管猎枪单管猎枪图片15504036447
- [LeetCode]Set Matrix Zeroes
- Docker学习笔记 — Docker网络总结
- yate学习--./yate/tools/log_rotate.sh
- YUV422P(UYVY)转换到RGB , 基于Opencv2.4.10
- VB.Net水晶报表:记录选择公式无效,显示出所有记录的解决方法
- Hdoj 2200 Eddy's AC难题 【数学】
- 高手教你如何修改win7的MTU值
- Ubuntu关于UID的更改
- 【C 语言】DFS 解决马最少跳步次数
- html5 canvas android bug
- LeetCode OJ Happy Number