先参考这个博客
首先修改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 指令打开文件,不然有可能没有修改权限。
步骤五 开启crontab服务
servicr crond start
然后报错
然后解决方法是这个 https://blog.csdn.net/xue15029240296/article/details/89881446
centOS:
使用crontab -e //编辑
crontab -l //查看定时任务
生效运行:
先安装;
systemctl enable crond
systemctl start crond
停止:systemclt stop crond