shellメモ
コマンドをパイプで繋いでいるだけのコトなんですがー細かい部分を間違ってしまったりしてーいつも忘れてしまうのでー個人メモ!!
たとえば,ServerBからServerAへ多くのデータをもってきたい場合, 通常ならServerBでtar.gzに圧縮して, scpでServerAにコピーして, ServerAにて解凍するのだろうがー,これだと時間もかかるしーServerBのハードディスクの容量の問題で圧縮後のファイルを置くことができないなんて場合にも便利.
[ServerA]$ ssh ServerB "(cd /home/user/data && tar czvf - ./*)" | (cd /home/user/data && tar xzvf -)
ServerAには解凍しない場合は,
[ServerA]$ ssh ServerB "(cd /home/user/data && tar czvf - ./*)" | (cd /home/user/data && cat - > data.tar.gz)
とすればOKかな!?
もちろんServerBから実行するのもありでしょう.
[ServerB]$ (cd /home/user/data && tar czvf - ./* ) | ssh ServerA "(cd /home/user/data && tar xzvf -)"
メモでした.