2016-08-22 2 views
2

꽤 느린 네트워크를 통해 많은 로그 파일을 다운로드 할 수있는 간단한 bash 스크립트가 있습니다. 원격 측의 로그를 압축 할 수 있습니다. 기본적으로 다음과 같습니다.bash : 다른 사람들을 압축하면서 압축 파일 보내기

ssh: compress whole directory 
scp: download archive 
ssh: rm archive 

lzma를 사용하면 큰 압축을 제공하지만 전체 디렉토리를 압축하는 속도가 느립니다. 다른 파일/청크가 여전히 압축되는 동안 단일 파일 (또는 여러 파일)을 압축하고 다운로드를 시작할 수있는 스크립트를 작성하는 도구 나 쉬운 방법이 있습니까? 백그라운드에서 모든 단일 파일에 대해 압축을 시작하고 올바른 확장명을 가진 루프 다운로드/rsync 파일을 생각하고있었습니다. 하나 하나이기 때문에하지만 난 압축 프로세스가 작업

답변

0

을 완료하면 확인 서버로 보내고 및 로그 디렉토리로 이동하여 병렬로 모든 로그를 압축하는 병렬 GNU를 사용하여 ssh을 시도하는 방법을 알고하지 않습니다 압축을 푼 경우 이름을 변경하여 .done 접미사를 추가하면 rsync이됩니다. 그래서, 서버에서 당신은 실행됩니다 :

cd <LOG DIRECTORY> 
rm ALL_COMPRESSED.marker 
parallel 'lzma {}; mv {}.lzma {}.lzma.done' ::: *.log 
touch ALL_COMPRESSED.marker 
1

가장 쉬운 방법은 ssh -C를 사용하여 운송을 압축하는 것입니다. 그러나 많은 수의 작은 파일이있는 경우 tar zcf 또는 tar jcf을 사용하여 전체 디렉터리를 한 번에 tarring하고 gzip/bzipping하는 것이 좋습니다. 당신은 파일을 다운로드하는 것을 시작할 수 있습니다. 아직 시도하지는 않았지만 아직 작성 중입니다.