明日会える?

2008年10月03日

圧縮しながら転送するコマンド

アプリケーションのlogディレクトリ等、巨大なディレクトリが
ディスク容量を圧迫していて、しかもディスクの空き容量がなく、
圧縮することもできない場合(圧縮時のテンポラリー領域も確保
できない状況)に、下記方法で他のサーバに圧縮しながらデータを
転送することができます。

◆ディレクトリをgzipで圧縮しながらリモートサーバのディレクトリ
 にコピーを作成。
tar cvfz - ディレクトリ | ssh サーバ 'cat > ファイル.tar.gz'

 コマンド例:logsディレクトリをリモートサーバのhoge01.localdomainの
       /tmp以下に、logsディレクトリを固めて、圧縮して転送する。
`tar cvfz - logs | ssh hoge01.localdomain 'cat > /tmp/logs.tar.gz'`


bzip2で圧縮しながらの場合、
tar cvfj - ディレクトリ | ssh サーバ 'cat > ファイル.tar.bz2'

`tar cvfj - logs | ssh hoge01.localdomain 'cat > /tmp/logs.tar.bz2'`

環境にもよりますが、ファイルを移動したいサーバにディスク容量の
余裕があるのであれば、転送してから圧縮した方が早いかもしれません。

参考までに、私の環境では84GBの大量のテキストファイルを含んだ
ディレクトリをbzip2で圧縮しながら転送したところ、約5時間かけて
圧縮しながら転送完了し、圧縮後は8.7GBでした。





posted by システムやさん at 10:11| Comment(0) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/107507264

この記事へのトラックバック