不知道为什么我的没有生效,不知道为什么我的没有生效,不知道为什么我的没有生效.
参考 https://www.freesion.com/article/89171311448/
参考 https://blog.csdn.net/lj1404536198/article/details/81381787
创建文件目录 ROOT权限
mkdir -p /data/log/uwsgi/
touch /data/log/uwsgi/uwsgi.log
在/etc/logrotate.conf
填写配置 ROOT权限
# 二选一
/data/log/uwsgi/uwsgi.log # 原日志路径
{
daily # 转储形式,按天转储
rotate 1# 保留的转储文件数量
ifempty
nocompress
missingok
copytruncate
dateext
dateformat .%Y%m%d # 转储后的文件命名
# olddir /data/log/uwsgi/ # 转储路径
}
# 二选一
/data/log/uwsgi.log {
daily
rotate 1
dateext
missingok
notifempty
copytruncate
nocompress
sharedscripts
}
关闭项目调整uwsgi配置
daemonize=/data/log/uwsgi/uwsgi.log
# 使得uwsgi.log文件被转存后能继续在uwsgi.log文件中写入日志,且不会中断当前程序的执行
touch-logreopen =/data/log/uwsgi/.touchforlogrotat
创建touchforlogrotat.sh脚本.
#!/bin/bash
DIR=`echo $(cd "$(dirname "$0")"; pwd)` #获取当前目录
LOGDIR="/data/log/uwsgi/" #log目录
sourcelogpath="${LOGDIR}uwsgi.log" #log源地址
touchfile="${LOGDIR}.touchforlogrotat" #需要touch的文件
DATE=`date -d "yesterday" +"%Y%m%d"`
destlogpath="${LOGDIR}uwsgi-${DATE}.log" #重命名后的文件
mv $sourcelogpath $destlogpath
touch $touchfile # 更新文件时间戳
创建计划任务
crontab -e
0 0 * * * sh /xxxx/touchforlogrotate.sh # 上面touchforlogrotat.sh的绝对路径.
查看执行日志
tail -f /var/log/cron.log
查看定时任务列表
crontab -l
观察