Linux logrotate 问题:如何使Log文件一达到指定大小就转储
Logrotate使用cron来定期执行的,如果在,两次cron执行的间隔中,log文件的大小达到或超过指定大小,Log文件还是不能被转储的。有没有办法让Log文件一达到...
Logrotate 使用cron来定期执行的,如果在,两次cron执行的间隔中,log文件的大小达到或超过指定大小,Log文件还是不能被转储的。
有没有办法让Log文件一达到指定大小就转储呢??
请各位帮忙!~ 展开
有没有办法让Log文件一达到指定大小就转储呢??
请各位帮忙!~ 展开
展开全部
这个问题用crond做不了,因为他的检测间隔就是一分钟,你如果想在两次cron执行的间隔中,log文件的大小达到或超过指定大小就自动转的话,就需要自己写一个脚本,使用sleep这个程序,让她在指定的时间内执行,你可以指定为1秒执行一次logrotate或者其他时间间隔
更多追问追答
追问
你好,脚本方面能不能说得再详细些呢?感谢!!
追答
比如可以这样:
vi /root/auto_logrotate.sh
#!/bin/bash
while [ $a -z ];
do
sleep 1;
logrotate /xxx/xxx.conf; //这里的/xxx/xxx.conf是你要监控的那个进程的logrotate配置文件。
done
然后chmod u+x /root/auto_logrotate.sh
然后放在后台运行:/root/auto_logrotate.sh&
然后在:echo "/root/auto_logrotate.sh&" >>/etc/rc.local
这样子就会每隔一秒执行一次logrotate,如果log文件符合你的logrotate的配置文件条件的话,就会自动备份。
展开全部
写程序做。
或是将执行时间缩短到最小,如1分钟。每次执行的时候,检查大小,达到要求转储,没达到,不做。
或是将执行时间缩短到最小,如1分钟。每次执行的时候,检查大小,达到要求转储,没达到,不做。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用size参数应该就可以了
$ cat logrotate.conf
/tmp/output.log {
size 1k
copytruncate
rotate 4
}
$ cat logrotate.conf
/tmp/output.log {
size 1k
copytruncate
rotate 4
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
logrotate本身就可以指定大小的,你再仔细看看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询