압축·아카이브·검색 (tar·gzip·find)
4. 응용 변형 예제
4.1 원격으로 바로 묶어 받기
ssh app1 'tar czf - -C /opt/myapp conf logs' > app1-backup.tgzf - 가 표준 출력을 뜻해 서버에 임시 파일을 만들지 않습니다. 06 레슨의 ssh 원격 명령과 결합한 형태입니다.
4.2 jar 안 파일 확인
unzip -l app.jar | grep -i 'application.yml'
unzip -p app.jar BOOT-INF/classes/application.yml | head배포된 jar 에 어떤 설정이 들어 있는지 풀지 않고 봅니다. unzip -p 가 파일 하나를 화면에 출력합니다.
4.3 최근 바뀐 설정에서 검색
find /opt/myapp/conf -type f -mtime -1 -print0 | xargs -0 grep -n 'db-'배포 후 "어제 누가 뭘 바꿨나" 를 볼 때입니다. 하루 안에 바뀐 파일만 대상으로 db- 를 찾습니다.
4.4 로그 보관 정책
find /opt/myapp/logs -name 'app.*.log' -mtime +7 ! -name '*.gz' -exec gzip {} +
find /opt/myapp/logs -name 'app.*.log.gz' -mtime +90 -delete7일 지나면 압축, 90일 지나면 삭제입니다. 운영 묶음 06 의 logrotate 대신 cron 두 줄로도 됩니다.
4.5 폐쇄망 반출 묶음
tar czf release-1.2.3.tgz app.jar conf/ scripts/
sha256sum release-1.2.3.tgz > release-1.2.3.tgz.sha256
split -b 500m release-1.2.3.tgz release-1.2.3.part_묶고, 체크섬 만들고, 매체 크기에 맞춰 나눕니다. 반입 측은 cat 으로 합쳐 -c 로 확인한 뒤 tar xzf 합니다.