按照日期切割uwsgi日志

 nadia     2019-10-23     2180     0   

欢迎来到银盒子的世界~

先参考这个博客

首先修改uwsgi的配置文件  https://blog.csdn.net/qq_37742059/article/details/82782489

1. 指定touch-logreope文件:
    [uwsgi]
    touch-logreopen = /tmp/uwsgi.flask/touchforlogrotate.sh  # 该文件变动时重新指定新的输出流到daemonize
    daemonize = /tmp/uwsgi.flask/server.log

这里把uwsgi的日志放在了/tmp/uwsgi.flask/下,这里有个trick,既touch-logreopen参数监控的文件就是后面要定时执行的shell脚本本身。可以精简一个空白文件。
2. 自动脚本,创建一个自动sh脚本放在日志目录/tmp/uwsgi.flask/下:

    #!/bin/bash
    DIR=`echo $(cd "$(dirname "$0")"; pwd)`
    echo $(dirname "$0") $DIR $0 `pwd`
    # LOGDIR="${DIR}"
     
    sourcelogfile="${DIR}/server.log"
    touchfile="$0"
     
     
    DATE=`date -d "yesterday" +"%Y%m%d"`
    destlogpath="${DIR}/uwsgi.flask.${DATE}.log"
     
    mv $sourcelogfile $destlogpath
    touch $touchfile

3. crontab定时调用
0 0 * * * sh /tmp/uwsgi.flask/touchforlogrotate.sh

重启uwsgi,每天0时自动执行时,会把昨天的server.log对应到昨天日期的log文件。随着最后脚本touch了自己,今天又是全新的server.log。至此,就可以实现简单的日志按日期分片啦。
然后发现,定时任务这不是很会弄,下边是定时任务

执行定时任务参考这个博客 https://blog.csdn.net/liao392781/article/details/79278811
步骤一    首先我们先看一下是否安装了crontab。一般情况下linux系统会自带crontab及crond。如果没有安装,请使用以下指令安装:yum install vixie-cron           yum install crontabs (PS:Ubuntu操作系统下请使用apt-get)
步骤四   然后我们就要使用crontab了,首先进入它的配置文件,在/etc/crontab  中添加我们的调度命令。注意,该配置文件是一个只读文件,需要使用sudo vi  /etc/crontab 指令打开文件,不然有可能没有修改权限。
图片.png

步骤五    开启crontab服务

servicr crond start

然后报错

图片.png


然后解决方法是这个 https://blog.csdn.net/xue15029240296/article/details/89881446
centOS:
使用crontab -e //编辑
crontab -l //查看定时任务
生效运行:
先安装;
systemctl enable crond
systemctl start crond
停止:systemclt stop crond


发表评论