모든 .log 및 .err 파일을 제외하려면 와일드카드를 사용하여 폴더를 보관하는 솔루션이 필요합니다.

모든 .log 및 .err 파일을 제외하려면 와일드카드를 사용하여 폴더를 보관하는 솔루션이 필요합니다.

/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)이 있습니다. -파일 이름으로 대시( )를 사용하여 표준 입력에서 파일 이름을 읽을 수 있습니다 .

관련 정보