我在RedHat Linux 6计算机上运行Elasticsearch和Logstash。我有一堆日志文件,每天从6月到8月的每天轮换。我试图找出最好的方法来保存一些磁盘空间,而无需手动削减每个磁盘空间。我在编写脚本方面有点新手,所以我想知道是否有人可以帮助我?这些文件的名称为 elasticsearch-cluster.log .datestamp。理想情况下,它们都会在各自的tar文件中,因此如果需要,可以更容易地返回并查看特定日期的日志。
答案 0 :(得分:0)
您可以使用循环:
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文件后,可以手动删除它们。