mysqldump를 tar.gz로

mysqldump를 tar.gz로

일반적으로 명령을 사용하여 MySQL 데이터베이스를 덤프한 후 mysqldump결과 파일을 즉시 tar/gzip으로 압축합니다. 하나의 명령으로 이 작업을 수행하는 방법을 찾고 있습니다.

그래서 이것으로부터:

mysqldump dbname -u root -p > dbname.sql
tar czvf dbname.sql.tgz dbname.sql
rm dbname.sql

다음과 같이 :

mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz

또는 더 나은 방법도 있습니다(보통 덤프 파일을 다른 서버로 scp'ing하기 때문에).

mysqldump dbname -u root -p > send dbname.sql.tgz to user@host

저는 데비안에서 bash를 실행하고 있습니다.

답변1

mysqldump --opt <database> | gzip -c | ssh user@wherever 'cat > /tmp/yourfile.sql.gz'

이와 같은 파이프에서는 tar를 사용할 수 없으며 단일 파일만 출력하므로 어쨌든 필요하지 않습니다. tar는 파일이 여러 개인 경우에만 유용합니다.

답변2

이를 로컬에서 실행하는 경우 다음 명령을 사용하여 데이터베이스를 백업하고 gzip을 사용하여 압축합니다.

mysqldump -u userName -p (passwordPrompt) yourDatabaseName | gzip -c > output.gz 

(편집: 고정 -c 키)

답변3

명명된 파이프를 사용합니다.

mkfifo mysql_pipe
gzip -9 -c < mysql_pipe > name_of_dump.gz &
mysqldump database > mysql_pipe 
rm mysql_pipe

나는 항상 그것을 사용합니다. 굉장합니다.

http://en.wikipedia.org/wiki/Named_pipe

답변4

사용 pv및 모니터링 비율!

mysqldump prod_db -h dbslave | pv | gzip -c > prod_2012_08_20.dump.tgz

또는 크기(3GB)를 알고 있는 경우 정확한 추정치를 얻으세요.

mysqldump prod_db -h dbslave | pv -s 3g | gzip -c > prod_2012_08_20.dump.tgz

관련 정보