日常前言
最开始建站的时候,网上搜集怎么对nginx产生的日志进行按小时切断的方法,搜出来的基本都是使用sh的脚本(Linux能直接解析的语言),无法完全看懂的我只好直接ctrlCV(T_T)。
后来想想,干嘛不用Python试试呢?说写就写!
开始
第一步,按时截断
按时
一般来说我们都是不会希望巨多的日志数据全部存储到一个文件里的,所以我们需要按自己的需要进行定时截断日志。
在实际生产过程中,在服务上while True
跑一个py脚本是不现实的,这里通过一个名为crond的包来实现定时任务(内置的,没有就yum安一下)。我们通过crontab -e
来编辑其内容,他的格式为分 时 日 月 星期 执行脚本的解释器 执行的文件
。比如每小时运行一次的方法就是0 * * * * /usr/bin/python /opt/sbin/cut_nginx_logs.py
在多给几个实例方便使用
*/5 * * * * 每五分钟执行
0 * * * * 每小时
0 0 * * * 每天
0 0 * * 0 每周
0 0 1 * * 每月
0 0 1 1 * 每年
注意:每一次修改都需要重启crond服务!
截断:
这个接比较简单了,直接使用os.system
配合linux的mv
命令就可以实现效果