Custom Search

JITAKU_SVR_Wiki

リモートへのrsyncする方法

リモートのサーバ上へローカルサーバからrsyncする場合は以下のコマンド。
(ftpで言うと『put』、といった感じ。)

$ rsync -avI -e ssh /home/foo/* hogehoge@192.168.0.1:/home/userdir
($ rsync 元 先)

オプション

-a 属性を引き継いでrsyncをする

-v 進捗をプログレスバーで表示する

-e 通信方法をsshにする

TIPS:
rsyncのオプション"-a"は色々なオプションを複合しているので、必要のないオプションが入ってしまっていることがある。

-a, --archive               アーカイブモード(-rlptgoD オプションと同義)

上記にあるように、オプションは-r, -l, -p, -t, -g, -o, -Dが合わさっている。

-r, --recursive             ディレクトリで再帰的に実行する
-l, --links                 ソフトリンクを維持する
-p, --perms                 パーミッションを維持する
-t, --times                 タイムスタンプを維持する
-g, --group                 グループを維持する
-o, --owner                 オーナーを維持する (root のみ)
-D, --devices               デバイスを維持する (root のみ)
-I, --ignore-times         通常、rsync は同じファイル長、同じタイムスタンプのファイルをスキップする。スキップ機能をoffにさせたい時に使用。~



完全同期

rsync先に必要のないディレクトリやファイルがあった場合には削除する。
$ rsync -av -e ssh --delete /home/foo/* hogehoge@192.168.0.1:/home/userdir

同期に必要のないファイル、ディレクトリを除外する(exclude)

$ rsync --exclude 'mail*' /var/log /mnt/log
mailログを除外する。
アスタリスク(*)でワイルドカード指定すると、maillog.gz. maillog.2とかも除外してくれる。

複数除外したい場合にはexcludeを再度使用する。
$ rsync -av --exclude 'mail*' --exclude 'messages*' /var/log /mnt/log

リモートサーバからrsyncする方法

リモートのサーバからローカルサーバへrsyncする場合は以下のコマンド。
(ftpで言うと『get』、といった感じ。)

$ rsync -av -e ssh hogehoge@192.168.0.1:/home/foo/* /home/userdir
($ rsync 先 元)

実際の使用例

実際にrsyncする場合には、cronなどで定期的に回すのがほとんど。
この場合にはsshをすると、パスフレーズが邪魔になるので、以下を使用し、自動で回せる様にする。

参考

http://www.infoscience.co.jp/technical/rsync/rsync.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-17 (木) 17:21:58 (644d)