[완료]mysqldump 하면서 바로 압축하기

cshong의 이미지

strDate="'date + %Y'-'date + %m'-'date + %d'userslog.sql"
mysqldump sharewaredb xxxxxxxx > /home/httpd/dbbackup/"$strDate"

위 코드에서 덤핑을 할 때 압축을 하기 위해 다음과 같이 수정을 했습니다.

strDate="'date + %Y'-'date + %m'-'date + %d'userslog.sql"
mysqldump sharewaredb xxxxxxxx > /home/httpd/dbbackup/"$strDate" | bzip2 /home/httpd/dbbackup/"$strDate"

하지만 하디디스크에 기록을 했다가 압축을 하는 것이기 때문에 의미가 없다고 하네요.

하드디스크에 기록을 하기전에 압축을 해서 기록하는 방법이 없을까요?

keizie의 이미지

mysqldump | gzip > file.out

압축결과가 STDOUT으로 나오는 건 옵션을 확인하세요.

cacti의 이미지

mysqldump sharewaredb xxxxxxxx | bzip2 -c > /home/httpd/dbbackup/"$strDate".bz2

이 정도가 되겠네요.
----

언제나 삽질중 ㅡㅡ^

-----
언제나 삽질중 ㅡㅡ^

cshong의 이미지

파이프위치를 위치를 변경하는 정도로 이렇게 간단히 해결이 되는군요.
그냥 압축하는 방법만 말았는데 옵션에 대해서 공부를 해야겠네요.

감사합니다.

================================
생각만 해서는 아무것도 이룰 수 없다.. 행동하라!!

================================
생각만 해서는 아무것도 이룰 수 없다.. 행동하라!!

cshong의 이미지

그런데 bzip2 의 옵션에서 -c 는 결과를 stdout으로 출력하는 것이라고 하는데,
bzip2나 bzip2 -c 나 결과값은 똑같더군요.

차이점이 무엇인지 모르겠습니다.

================================
생각만 해서는 아무것도 이룰 수 없다.. 행동하라!!

================================
생각만 해서는 아무것도 이룰 수 없다.. 행동하라!!

Prentice의 이미지

bzip2 -c는 출력을 stdout로 하라는 뜻인데 bzip2만을 실행하면 stdin을 압축하여 stdout로 보냅니다.

stdin을 압축하여 stdout으로 보내는 경우는 bzip2만 하든 bzip2 -c를 하든 상관 없나봅니다.