Harshi Sarvaiya Asked: 2018-01-03 23:19:06 +0800 CST2018-01-03 23:19:06 +0800 CST 2018-01-03 23:19:06 +0800 CST 用于压缩目录中超过 1GB 的所有文件的 Shell 脚本 772 我需要创建一个脚本,将我/var/logs/*.log文件中大小超过 1GB 的所有文件压缩到/var/logs/*.zip. 例如:如果它access_log.log的access_log.zip大小超过 1024 MB。 rhel shell-script 2 个回答 Voted francois P 2018-01-03T23:29:05+08:002018-01-03T23:29:05+08:00 查看该示例的 find -size 选项 1M : find . -size +1M --exec gzip {} \; 但 如果它在 /var/log 文件夹中,您可能更喜欢使用 logrotate 方法来管理文件历史记录和自动压缩 Best Answer Morris Cornell-Morgan 2018-01-03T23:40:23+08:002018-01-03T23:40:23+08:00 这可能有效(从 运行/var/log): find *.log -type f -size +1G |xargs -L1 -I file zip file.zip file 解释 find *.log -type f -size +1G查找所有大于 1GB 的文件 xargs -L1 -I file zip file.zip file压缩每个文件文件 如果你在一个多核系统上(你可能是),你可以通过给出xargs参数并行运行(例如)4 个 zip 命令-P4。 如果您有兴趣节省更多空间,可以尝试提供zip该-9选项。 此外,值得注意的是gzip,bzip2, 和xz/lzip在 Unix 世界中比 Zip 更常见。
查看该示例的 find -size 选项 1M :
但 如果它在 /var/log 文件夹中,您可能更喜欢使用 logrotate 方法来管理文件历史记录和自动压缩
这可能有效(从 运行
/var/log
):find *.log -type f -size +1G |xargs -L1 -I file zip file.zip file
解释
find *.log -type f -size +1G
查找所有大于 1GB 的文件xargs -L1 -I file zip file.zip file
压缩每个文件文件如果你在一个多核系统上(你可能是),你可以通过给出
xargs
参数并行运行(例如)4 个 zip 命令-P4
。如果您有兴趣节省更多空间,可以尝试提供
zip
该-9
选项。此外,值得注意的是
gzip
,bzip2
, 和xz
/lzip
在 Unix 世界中比 Zip 更常见。