Linux

scpよりrsyncコマンドの方が高性能?rsyncでデータ転送する方法は?

scpよりrsyncコマンドの方が高性能?rsyncでデータ転送する方法は?

以前、scpを使ってリモートでファイル転送する方法について記事を書きました。

scpコマンドでファイル転送する方法!
scpコマンドでファイル転送する方法!scpコマンドでファイル転送する方法! 今回は、scpコマンドを使ってファイル転送を行う方法を紹介します。 サーバー移管を行う場...

今回は、「scpよりrsyncの方が高性能?」というお話です。

scpよりrsyncの方が高性能?

rsyncコマンドの使い方

先日、サーバー上のファイル転送について調べていると、rsyncコマンドの方がscpコマンドよりも少し高性能というブログ記事を見つけました。

rsyncコマンドは、今までローカルデータの自動バックアップくらいにしか使っていなかったので、リモートでファイル転送できるとは!!

ということで、さっそく試してみました。

コマンドの使い方は、scpとほとんど同じ!!

リモートでローカルデータを別サーバーへ転送する場合には、以下のようにオプションを付けて実行すればOKです。

# rsync -av 転送元のディレクトリ ユーザーID@ホスト名:転送先のディレクトリ

よく使用するオプションは以下のもの。
-vは転送中にコピーしているファイル名を表示
-aはファイルの属性やタイムスタンプを維持したまま転送

また、-pを付けることで、パーミッションをそのまま維持することも出来ます。

 

例えば、
/var/www/html/の直下にあるhogeディレクトリを、そのまま転送先サーバーの/home/test/www/の直下に移したい場合には、以下の様になります。
# rsync -av /var/www/html user@sample.com:/home/test/www/hoge

あと、コマンド実行時には当然パスワードも聞かれるので、転送先のパスワードを入力してください。

sshのポートを指定する方法

sshのポートを指定する場合には、-e “ssh -p ポート”または、–rsh=”ssh -p ポート”を指定して下さい。

例えば、ポートが22だとすると、このようになります。

# rsync -av -e “ssh -p 22” /var/www/html user@sample.com:/home/test/www/hoge

または、

# rsync -av –rsh=”ssh -p 22″ /var/www/html user@sample.com:/home/test/www/hoge

rsyncの方がscpよりも少し高性能な理由

rsyncの方がscpよりも少し高性能な理由は、scpが差分ファイルのみを転送できないのに対してrsyncは差分ファイルのみ転送してくれる!とのことです。

転送データが大量にある場合には、その都度全ファイル転送させるよりも差分ファイルのみを転送させる方が当然便利です。
要は、rsyncを使えばデータの同期を取れるということですね!!

まとめ

今回は、rsyncコマンドについてまとめました。

rsyncコマンドは、差分データのみを転送してくれます。
その為、データの同期をとるのにも使用できて便利です。

データ転送の効率のいい方法をお探しの方は、ぜひ使ってみてください。