繁体   English   中英

用于分别压缩多个日志文件的脚本

[英]script to tar up multiple log files separately

我在运行 Elasticsearch 和 Logstash 的 RedHat Linux 6 机器上。 我有一堆从 6 月到 8 月每天轮换的日志文件。 我正在尝试找出将它们压缩以节省一些磁盘空间的最佳方法,而无需手动对每个文件进行压缩。 我是脚本编写新手,所以我想知道是否有人可以帮助我? 这些文件的名称elasticsearch -cluster.log .datestamp。 理想情况下,它们都将位于各自的 tar 文件中,以便在需要时更容易返回查看当天的日志。

您可以使用循环:

for file in elasticsearch-cluster.log.*
do 
    tar zcvf "$file".tar.gz "$file"
done

或者,如果您更喜欢单行(这是递归的):

find . -name 'elasticsearch-cluster.log.*' -print0 | xargs -0 -I {} tar zcvf {}.tar.gz {}

或者正如@chepner 提到的-exec选项:

find . -name 'elasticsearch-cluster.log.*' -exec tar zcvf {}.tar.gz {} \;

或者如果想排除已经压缩的文件:

find . -name 'elasticsearch-cluster.log.*' -not -name '*.tar.gz' -exec tar zcvf {}.tar.gz {} \;

如果你不介意所有文件都在一个 tar.gz 文件中,你可以这样做:

tar zcvf backups.tar.gz elasticsearch-cluster.log.*

所有这些命令都保留原始文件。 验证 tar.gz 文件后,您可以手动删除它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM