2011-01-27 4 views
4

私はMySQLからローカルクライアントにダンプを取得しようとしています。MySQLシェルからのアクセスなしでリモートからtar.gzにダンプします

mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db | gunzip -9 > $FILE

私も代わりにgunzipをアーカイブの.tar.gzをされて欲しい:これは私が現在持っているものです。私はローカルクライアント上ではシェルアクセスができますが、サーバー上では実行できません。だから、私はリモートタールをしてここにコピーすることはできません。ですから、gzipをtar.gzにパイプする方法はありますか? (現在、.gzはtarアーカイブとして認識されません)

ありがとう。

答えて

7

クライアント側で上記のコマンドを発行している場合は、クライアント側で圧縮が行われます。 mysqldumpはリモートサーバに接続し、圧縮せずにデータをダウンロードします。

mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db > filename 
tar cfz filename.tar.gz filename 
rm filename 

おそらく、一部のUNIXの専門家は、それを行うために1つのライナーを持っています。 $ファイルが

+0

mysqldump -u $ MyUSER -h $ MyHOST -p $ MyPASS $ db>ファイル名; tar cfz filename.tar.gz filename; rmファイル名:D – cledoux

+0

lol、それは1つのライナーを作る1つの方法です –

+0

良い答え。それは自分のことを考えるべきだったが、ありがとう。あなたが言ったように、私はまだ1ライナーを探し続けています。 – recluze

3

いいえファイル(複数の場合はtarが通常複数のファイルに使用されるため複数)はtarアーカイブに置かれ、、次にが圧縮されます。 tarコマンドラインツールを使用する場合は、結果を一時ファイルに保存してからtarコマンドを実行する必要があります。

個人的には、私はむしろ別の側面にクルバットを打つだろう。

+0

は、中間ファイルに同意します。私は最後のコメントは本当に理解していない。 – recluze

+1

かなりシンプルです。単一のファイルなので、tarアーカイブに入れるための**正当な理由はありません。 –

3

mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db | tar -zcvf $FILE -

/usr/bin/mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db | gzip -c > /home/backup_`/bin/date +"\%Y-\%m-\%d_\%H:\%M"`.gz 
+3

動作しません。エラー: tar: - MySQLダンプ10.11:Can not stat:そのようなファイルまたはディレクトリがありません – recluze

1

アーカイブ、バックアップ、あなたのファイル名.tar.gzであり、時間と日付で名前を変更

関連する問題