说明:logrotate只是用来操作日志文件,而需要持续切割文件,需要配合定时crontab任务
logrotate按日志文件大小来分割日志
1. 切换用户
sudo -i
2. 编辑切割某日志文件的配置
2.1 命令
vi /etc/logrotate.d/splatonlog
2.2 内容
/home/platon/platon-special-node/v1.4.0.3/product_env/data/splaton.log {
su root root
size=500M
rotate 100
compress
missingok
notifempty
copytruncate
}
3. 执行转存
logrotate -f /etc/logrotate.d/splatonlog
4. 说明
执行时,logrotate只能通过size判断文件大小是否满足切割,至于切割后的文件大小无法保证。
对于如上配置,如果初始的splaton.log大小为800M,配置是大于500M需要切割,则切割出来的新文件是800M。
如果日志文件增长过快,比如达到了20M/S,那么logrotate需要考虑提高切割的频率。
5. 如何持续不断的对日志文件进行持续的监控和切割
5.1 自己写.sh脚本,比如如下内容的脚本,执行后每秒中切割一次日志文件
splatonlog.sh
#!/bin/bash
for (;;);
do
/usr/sbin/logrotate /etc/logrotate.d/splatonlog
sleep 1
done
exit 0
5.2 利用linux的crontab定时任务
命令:vi /etc/crontab
增加一行:1 * * * * root /usr/sbin/logrotate /etc/logrotate.d/splatonlog > /dev/null 2>&1
重启cont服务:service cron restart