내 파일 /var/logs/*.log
에서 크기가 1GB를 초과하는 모든 파일을 압축 하는 스크립트를 생성해야 합니다 /var/logs/*.zip
. 예를 들어 크기가 1024MB를 초과하는 access_log.log
경우입니다 .access_log.zip
답변1
이것은 작동할 수 있습니다(실행에서 /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
옵션을 제공해보세요.
또한 Unix 세계에서는 gzip
, bzip2
및 xz
/가 Zip보다 더 일반적이라는 점에 주목할 가치가 있습니다.lzip
답변2
이 예에서는 find -size 옵션 1M을 확인하세요.
find . -size +1M --exec gzip {} \;
하지만 /var/log 폴더에 있는 경우 logrotate 방법을 사용하여 파일 기록 및 자동 압축을 관리하는 것이 좋습니다.