如何pipe理/旋转/删除mesos日志

我使用以下命令启动mesos主容器:

ExecStart=/usr/bin/docker run --rm \ -e MESOS_HOSTNAME={{ ansible_hostname }} \ -e MESOS_IP={{mesos.external_ip}} \ -e MESOS_QUORUM={{mesos.quorum}} \ -e MESOS_ZK={{mesos.zk}} \ -e MESOS_LOG_DIR=/var/log/mesos -v /var/log/mesos:/var/log/mesos \ -e MESOS_WORK_DIR=/var/lib/mesos -v {{mesos_work_dir}}:/var/lib/mesos \ --name mesos-master --net host {{docker.master}} 

我得到了大量的mesos日志: mesos日志

 lrwxrwxrwx. 1 root root 60 Apr 19 17:14 mesos-master.INFO -> mesos-master.vdorct1.invalid-user.log.INFO.20170419-141458.6 -rw-r--r--. 1 root root 23983 Apr 19 16:46 mesos-master.vdorct1.invalid-user.log.INFO.20170419-134210.6 -rw-r--r--. 1 root root 48678 Apr 19 17:14 mesos-master.vdorct1.invalid-user.log.INFO.20170419-135536.6 -rw-r--r--. 1 root root 6595 Apr 19 17:14 mesos-master.vdorct1.invalid-user.log.INFO.20170419-141436.6 -rw-r--r--. 1 root root 8240 Apr 19 17:14 mesos-master.vdorct1.invalid-user.log.INFO.20170419-141444.6 -rw-r--r--. 1 root root 122324 Apr 19 18:14 mesos-master.vdorct1.invalid-user.log.INFO.20170419-141458.6 -rw-r--r--. 1 root root 253 Apr 19 16:42 mesos-master.vdorct1.invalid-user.log.WARNING.20170419-134210. 

我需要pipe理这个日志,定义要保留多less个文件和/或多less天保留日志。 我可以使用bash + cron达到它。 但这是不可接受的,因为公司的政策:我必须使用Linux工具。

我试图configurationlogrotate。 但是它只能用于删除文件:它只能删除旋转文件或所有文件。

可能是我可以强制mesos写入单个文件中的日志:仅举例

 mesos-master.vdorct1.invalid-user.log.INFO 

代替

 mesos-master.vdorct1.invalid-user.log.INFO.20170419-134210.6 mesos-master.vdorct1.invalid-user.log.INFO.20170419-135536.6 ... 

在这种情况下,我可以configurationlogrotate。

所以问题是:如何使用standart linux工具自动清理mesos日志? 或者我可以如何强制mesos在单个文件中写入日志?

谢谢!

像这样的东西可以使用logrotate和olddir参数来实现:

 /var/log/mesos/*.*.* { olddir /var/log/mesos/backup maxsize 2000k daily maxage 7 copytruncate postrotate find /var/log/mesos /var/log/mesos/backup -mtime +7 -delete endscript } 

在logrotate运行之前,需要创build来自olddir参数的文件夹。