mysqldumpsコマンドを連結して単一のgzip圧縮ファイルを出力する

mysqldumpsコマンドを連結して単一のgzip圧縮ファイルを出力する

この一連の命令があるとしましょう。

mysqldump --opt --databases $dbname1 --host=$dbhost1 --user=$dbuser1 --password=$dbpass1
mysqldump --opt --databases $dbname2 --host=$dbhost1 --user=$dbuser1 --password=$dbpass1
mysqldump --opt --databases $dbname3 --host=$dbhost2 --user=$dbuser2 --password=$dbpass2
mysqldump --opt --databases $dbname4 --host=$dbhost2 --user=$dbuser2 --password=$dbpass2

1行のコードを使用して、どの出力(出力名が$ dbhost.$ dbname.sqlであると仮定)をbackupfile.sql.gzというファイルに入れることができますか?

編集する:以下のコメントから答えまで、@arvinsimは実際に圧縮したいと思いました。ファイルファイルは、SQLダンプではなく別々のファイルに含まれています。一つ圧縮されたSQLファイル。

ベストアンサー1

( mysqldump --opt --databases $dbname1 --host=$dbhost1 --user=$dbuser1 --password=$dbpass1; \
  mysqldump --opt --databases $dbname2 --host=$dbhost1 --user=$dbuser1 --password=$dbpass1; \
  mysqldump --opt --databases $dbname3 --host=$dbhost2 --user=$dbuser2 --password=$dbpass2; \
  mysqldump --opt --databases $dbname4 --host=$dbhost2 --user=$dbuser2 --password=$dbp \
 ) | gzip > backupfile.sql.gz

または1行で:

( mysqldump --opt --databases $dbname1 --host=$dbhost1 --user=$dbuser1 --password=$dbpass1; mysqldump --opt --databases $dbname2 --host=$dbhost1 --user=$dbuser1 --password=$dbpass1; mysqldump --opt --databases $dbname3 --host=$dbhost2 --user=$dbuser2 --password=$dbpass2; mysqldump --opt --databases $dbname4 --host=$dbhost2 --user=$dbuser2 --password=$dbp) | gzip > backupfile.sql.gz

おすすめ記事