/app/jboss
모든 파일과 폴더를 제외하고 모든 파일과 폴더를 보관하고 싶습니다.. 통나무그리고. 잘문서. 아래 디렉토리 구조가 /app/jboss
너무 크고 복잡합니다.
따라서 아래 샘플 파일 중 일부는 제외되어야 합니다.
/app/jboss/standalone/server4/server1.log
/app/jboss/standalone/server7/server1.log_bkp
/app/jboss/audir/diag.log
/app/jboss/standalone/server7/server1.err.gz
/app/jboss/standalone/version1.err
.... etc
가능하다면 내 솔루션이 AiX, Solaris 및 Linux에서 실행되기를 바랍니다. 그렇지 않으면 각 문제마다 다른 해결책이 있습니다.
나에게 가장 좋은 압축 .gz
은 내가 선호하는 압축입니다.
아래 John의 솔루션을 시도했지만 작동하지 않는 것 같습니다.
[root@myhost moht_bkp]# find /app/jboss -not -name "*.log*" | cpio -o | gzip > /app/moht_bkp/test.gz
1360843 blocks
[root@myhost moht_bkp]# echo $? 0
[root@myhost moht_bkp]# ls -ltr
total
1097768 -rw-r--r-- 1 root root 562056007 Jul 20 10:45 test.gz
[root@myhost moht_bkp]# gunzip test.gz
[root@myhost moht_bkp]# ls -ltr total 680424 -rw-r--r-- 1 root root 696751616 Jul 20 16:34 test
답변1
이를 달성하려면 find, cpio 및 gzip을 함께 사용할 수 있습니다. 복사 출력 모드의 cpio는 표준 입력에서 파일 목록을 가져오고 표준 출력에 아카이브를 만듭니다. 압축을 위해 아카이브를 gzip으로 전달할 수 있습니다.
다음 예에서는 확장자 .err 및 .log를 제외한 모든 파일을 찾아 파일 목록을 cpio에 전달하고, cpio는 다시 아카이브를 gzip에 전달합니다. 마지막으로 압축된 아카이브가 파일로 리디렉션됩니다.
find app/jboss -not -name "*.err" -not -name "*.log" | cpio -o | gzip > /tmp/backup.gz
아카이브에서 파일을 추출하려면 gzip 파일의 압축을 표준 출력으로 풀고 입력 모드에서 cpio로 파이프합니다.
zcat /tmp/backup.gz | cpio -i
CPIO는 다양한 아카이브 형식을 지원하며 출력이 모든 플랫폼에서 호환되기를 원하는 경우 다양한 형식 옵션을 조사할 수 있습니다.
tar 프로그램의 GNU 버전에도 비슷한 옵션 -T
( --files-from=FILE
)이 있습니다. -
파일 이름으로 대시( )를 사용하여 표준 입력에서 파일 이름을 읽을 수 있습니다 .