在Linux下部署Django项目后,通常都是通过nginx+uwsgi进行服务部署的,在服务运行后产生的uwsgi.log日志也是会越来越大,久而久之,就会影响服务的访问速度。下面介绍一种利用Linux的crontab定时任务进行日志文件转储的方法。
1、创建uwsgi.log日志以及其转储日志的路径
/mnt/logs/uwsgi_log/ # uwsgi.log日志路径
/mnt/logs/uwsgi_log/back/ # uwsgi.log转储日志路径
2、修改uwsgi.ini的日志存储路径
daemonize=/mnt/logs/uwsgi_log/uwsgi.log
3、创建logrotate.conf文件,用于系统crontab调用,文件内容如下。
/mnt/logs/uwsgi_log/uwsgi.log # 原日志路径
{
daily # 转储形式,按天转储
rotate 30 # 保留的转储文件数量
ifempty
nocompress
missingok
copytruncate
dateext
dateformat .%Y%m%d # 转储后的文件命名
olddir /mnt/logs/uwsgi_log/back/ # 转储路径
}
4、在crontab中添加定时任务
首先使用命令crontab -e 进入定时任务编辑
如上图,任务将在0点0分执行,第一个0表示分钟,第二个0表示小时。
完成后 ctrl+X 保存,Shift+Y 、Enter退出,可先将执行时间改成临近时间,测试日志转储是否成功。
5、查看定时执行情况
- 查看执行日志 tail -f /var/log/cron.log
- 查看定时任务列表 crontab -l