tarでファイル転送をしてみる

linuxでファイル転送といえば、scpやrsync+SSHとかになるんだけど、tar+SSHでも可能らしい。

へぇーこんな使い方あるんだってお話www

参考:http://kaworu.jpn.org/kaworu/2008-07-10-1.php

まぁ、参考というか、そのままなので最後じゃなくて最初にLINK先を書いておく(^^;)

そもそも、tarはファイルをアーカイブするコマンドですね

使い方としては

tar zcvf /home/hoge/hoge.tar.gz .

という感じ。

このtarというコマンドは標準出力にも出す事が可能なのを利用するみたい。

tar - .

これを使ってカレントディレクトリを/tmpにコピーする場合

tar zcfp - . | tar zxfp - -C /tmp

ファイルを圧縮して、パイプで渡した先で指定したディレクトリで解凍してるんだね

ふむふむ

という事で、リモートだって同じ事

remo.hoge.netというサーバーにバックアップを取りたい場合

tar zcfp - . | ssh 接続ユーザ@remo.hoge.net tar zxfp - -C /tmp

SSHのポートを変更している場合は

tar zcfp - . | ssh -p ポート番号 接続ユーザ@remo.hoge.net tar zxfp - -C /tmp

こんな感じ。

既に圧縮されているファイルを転送する場合はzオプション(圧縮)を外してやる方が 早い場合もあるので、その辺りは臨機応変って事やね