linux如何配置uwsgi定时任,定时对uWSGI的日志进行切割备份

需要在uwsgi的配置文件中,添加 touch-logreopen, flask项目根目录下 uwsgi 的配置文件 uwsgi.ini 的内容如下:

[uwsgi]

# 启动主线程

master = true

#项目运行的虚拟环境目录

home = venv

#指定加载的WSGI文件

wsgi-file = wsgi.py

#指定uWSGI加载的模块中哪个变量将被调用

callable = app

#指定socket地址, 5000端口号

socket = :5000

#设置工作进程的数量

processes = 4

#设置每个工作进程的线程数

threads = 2

#监听请求队列的个数

listen = 1024

#主进程pid写到指定的文件

pidfile = uwsgi.pid

#不记录请求信息的日志,只记录错误以及uWSGI内部消息到日志中

#disable-logging = true

#进程在后台运行,并将日志打印到指定文件

daemonize = ./logs/uwsgi.log

#设置一个监听对象

touch-logreopen = ./logs/.touchforlogrotat

当监听对象 touch-logreopen 所指向的文件被touch,时间戳改变后,uwsgi会重新打开uwsgi.log文件进行写入,且不会中断当前程序的执行。如果没有touch-logreopen这个监听对象,是无法对uwsgi.log进行转储的。

通过crontab设置定时任务,命令行下输入:

crontab -e

会进入一个当前用户的文件,在这个文件中添加下面这行操作:

'''

* * * * * 执行任务

第一个* 一小时当中的第几分钟:0-59

第二个* 一天当中的第几个小时:0-23

第三个* 一月当中的第几天:1-31

第四个* 一年当中的第几个月:1-12

第五个* 一周当中的第几个星期:0-7 0,7都代表周日

'''

0 0 * * * sh /path/to/logbackups.sh #代表每天0点执行脚本 logbackups.sh

其中,脚本的内容 logbackups.sh 如下:

#!/bin/bash

#日志所在目录

LOGDIR="/path/to/logs/"

DATE=`date -d "yesterday" +"%Y-%m-%d"`

NEWDIR="/path/to/logs/${DATE}"

mkdir -p ${NEWDIR}

#将旧日志重新以日期命名

mv ${LOGDIR}/uwsgi.log ${NEWDIR}/uwsgi-${DATE}.log

touch /path/to/.touchforlogrotat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值