Linux 守护进程日志文件处理--logrotate+crontab

1、背景

守护进程离不开日志,日志多了就有想办法压缩、备份、删除。如果守护进程自带此功能,那么问题就没有了。如果没有此功能,可以使用其它方法:

logrotate+crontab就是很好的方案!!

2、logrotate+crontab处理uWSGI日志

2.1 Uwsgi配置文件

root@debian:~# cat /etc/uwsgi/uwsgi.ini

[uwsgi]

socket = 127.0.0.1:3031

chdir = /var/www/nevpn/service

wsgi-file = service.wsgi

plugins = python

processes = 1

threads = 2

daemonize = /var/log/uwsgi/uwsgi.log

pidfile = /var/run/uwsgi.pid

注意,要先创建/var/log/uwsgi/文件夹!

2.2 新增Logrotate配置文件

root@debian:/etc/logrotate.d# cat uwsgi

"/var/log/uwsgi/*.log" "/var/log/uwsgi/*/*.log" {

  copytruncate

  size 2K

  rotate 3

  compress

  delaycompress

  missingok

  notifempty

}

Size 2K 说明日志超过2K就分割,这个用来测试,实际可以使用size 5M。

Rotate 3, 说明一共存3个日志的备份文件,每次日志整理后,超过3个的,最久的被删除,如下:

drwxr-xr-x  2 root root 4.0K Aug 12 18:01 .

drwxr-xr-x 15 root root 4.0K Aug 12 16:31 ..

-rw-r-----  1 root root    0 Aug 12 18:01 uwsgi.log

-rw-r-----  1 root root 1.4K Aug 12 18:01 uwsgi.log.1

-rw-r-----  1 root root  909 Aug 12 18:01 uwsgi.log.2.gz

-rw-r-----  1 root root  106 Aug 12 17:53 uwsgi.log.3.gz

手动执行logrotate测试一下:

手动执行,测试一下。

logrotate -fv /etc/logrotate.d/uwsgi

-f :强制执行logrotate,

-v :显示执行内容

2.3 Crontab每5分钟执行logrotate

root@debian:~# cat /etc/cron.d/uwsgi

PATH=/bin:/usr/bin:/sbin:/usr/sbin


*/5 * * * * root /usr/sbin/logrotate /etc/logrotate.d/uwsgi

3. 演示

root@debian:~# watch -c ls -ahl /var/log/uwsgi/

Every 2.0s: ls -ahl /var/log/uwsgi/                       Fri Aug 14 14:59:29 2020


total 16K

drwxr-xr-x  2 root root 4.0K Aug 14 14:59 .

drwxr-xr-x 16 root root 4.0K Aug 14 11:26 ..

-rw-r-----  1 root root    0 Aug 14 14:59 uwsgi.log

-rw-r-----  1 root root 2.4K Aug 14 14:59 uwsgi.log.1

-rw-r-----  1 root root  479 Aug 14 14:58 uwsgi.log.2.gz

Watch命令可以重复执行指令。

4. 相关资料

logrotate:https://blog.csdn.net/u011285208/article/details/108018003

crontab:https://blog.csdn.net/u011285208/article/details/108018210

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值