Linux logrotate 问题:如何使Log文件一达到指定大小就转储

Logrotate使用cron来定期执行的,如果在,两次cron执行的间隔中,log文件的大小达到或超过指定大小,Log文件还是不能被转储的。有没有办法让Log文件一达到... Logrotate 使用cron来定期执行的,如果在,两次cron执行的间隔中,log文件的大小达到或超过指定大小,Log文件还是不能被转储的。

有没有办法让Log文件一达到指定大小就转储呢??
请各位帮忙!~
展开
 我来答
xxywyc
推荐于2016-09-26 · 超过10用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:33.3万
展开全部
这个问题用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的配置文件条件的话,就会自动备份。
simongao
2012-06-01 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:116万
展开全部
写程序做。
或是将执行时间缩短到最小,如1分钟。每次执行的时候,检查大小,达到要求转储,没达到,不做。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuliao1412
2012-06-08
知道答主
回答量:11
采纳率:0%
帮助的人:13.5万
展开全部
用size参数应该就可以了
$ cat logrotate.conf
/tmp/output.log {
size 1k
copytruncate
rotate 4
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
joeylee1125
2012-06-02
知道答主
回答量:67
采纳率:0%
帮助的人:28.2万
展开全部
logrotate本身就可以指定大小的,你再仔细看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式