
일반적으로 명령을 사용하여 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
나는 항상 그것을 사용합니다. 굉장합니다.
답변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