(Linux) rsyncコマンドで、リモートとローカルを簡単に同期する

rsync

 

業務でサーバーの管理を行っていて「rsyncコマンド」を使う機会があったので、使い方をメモ

 

rsyncコマンドとは

rsync-image

rsyncコマンドとは、ファイルやディレクトリをまるっと同期させるコマンド

 

 

rsyncコマンドの使い方

コマンドの基本的な文法は下記

rsync 同期元パス 同期先パス

 

とりあえず、、同じPC内でrsync

リモートPCからの同期が便利だと言ったが、
とりあえず基本的な使い方を覚えるという意味で、
同じPC内でファイルをrsync(同期)する。

 

rsyncコマンドが入っているか確認

Unix系のPCなら大体最初から入っている

which-rsync

 

rsync実施

とりあえず適当にファイル(rsync.txt)を作成

touch

 

こいつをデスクトップに同期していく

rsync-to-desktop

 

デスクトップに「rsync.txt」が同期できた。ここまでは簡単。

rsync-result

 

リモートPCからrsyncする

ここからは筆者が実務でやったやつ。本題。
同じネットワーク上のサーバのディレクトリを、まるっとログイン中のサーバに同期させるってことをやった。

rsync

 

 

リモートPCからのrsync書き方

リモート先から、ログイン中のPCにrsyncする書式は下記。

rsync -av ユーザ名@リモートホスト名:同期元パス 同期先パス

 

  • ユーザ名:ログインするユーザ名
  • リモートホスト名:ログインするホスト名(IPアドレスでも可)
  • 同期元パス:同期元となるリモートPCのパス
  • 同期先パス:同期先となるローカルPCのパス

 

-avオプションは、ディレクトリ内を再帰的に・実行中ログも表示させるで実施するオプション。
結構つける機会が多い。

 

実際の例

例えば次のような状況がある

リモートPC(192.168.1.1)の/tmpディレクトリを、
ローカルPC(ログイン中の)のデスクトップに同期したい。

ユーザ名は仮に「tarou」とする。

rsync2

 

この場合コマンドは以下。

rsync -av tarou@192.168.1.1:/tmp /Users/hara-chan/Desktop

 

これで同期できる。

 

 

ディレクトリを同期するときの注意点「/」をつけない

rsyncで一番気をつけたい点は、
ディレクトリを同期する際、同期元のパスの最後に「/」をつけるかどうかだ。

今回、同期元パスを「/tmp」とし、末尾に「/」をつけなかったが、
これは「tmpディレクトリを同期する」、という意味になる。

逆に、同期元パスを「/tmp/とするとどうなるか、つまり末尾に「/」をつけた場合、
それは、「tmpディレクトリの中身を同期するという意味になる。

rsync-usage-image

中身だけ間違って同期させると、仮にファイルが100件あったとして、
それらが同期先のディレクトリ内に100件羅列されてしまう事態になる。
だから、同期元パスのディレクトリの最後に「/」つけるかつけないか、とても大事。

反対に同期先パスの最後の「/」はあっても無くても結果は変わらない。

 

実際にローカルPC内でやってみた

同一ホスト(ローカル)だが上記とまったく同じ状況を再現してみた。

まずは/tmpに移動。

cd-tmp

 

んで、ディレクトリを作って、その中に適当にファイルも作る

mkdir-and-touch

 

そしたらrsyncコマンド実行

do-rsync

 

初めてのリモートホストに接続する場合、「本当に接続していいか?」と聞かれるのでyesと入力。

areyousure

 

そしたら同期が始まる。vオプションを付けたので、同期中の内容が画面に出力される。

rsynk-log

 

無事、デスクトップに同期された

rsync-result

 

完了

 

rsyncメリット

rsyncのメリット

サーバ間でcpコマンド的なことができてしまう

他サーバへのバックアップがコマンドだけでできてしまう

 

サーバ間でcpコマンド的なことができてしまう

同じPC内であればcpコマンドを使えば良いが、サーバ間ではrsyncが必要。

 

他サーバへのバックアップがコマンドだけでできてしまう

またサーバのイメージをバックアップとかするほどでもないとき(ディレクトリ単位)とかはrsyncでサクッとバックアップが取れる。

 

 

 

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。