正确记日志方式是每天都进行切割重新写,保留固定的时间后可使用 find 删除。
用系统自带有的 logrotate
/etc/logrotate.d 下面再建立一个文件,这里是nginx
( 中途有 ctrl+Z 暂停过任务,后面fg恢复的 )
/usr/local/nginx/logs/*log 把目录下所有的log结尾的文件都进行切割
daily 是每天切割
rotate 30 是保留30天
missingok 忽略错误
notifempty 日志为空时不切
compress 压缩
引入脚本,命令
sharescripts
XXXX 中间是脚本、命令部分
endscript
postrotate 表示当切割完成之后要执行的命令。
这里kill是因为 日志挪走以后,进程没杀掉时,始终是在写一个旧的日志文件。通过杀了以后才会自动新建一个新的日志文件。
有时候因为要在容器外kill ,可以用ps+awk来kill
ps -ef |grep "openresty/nginx/nginx" | awk '/master/{print $2}'
强制手动切割
logrotate -f /etc/logrotate.d/nginx (这里这个切割的名起的是nginx)
然后可以看到设置的文件夹下已经发生了切割