rsync リモートホストとのファイルの変更分を検出して差分のみを転送する

rsyncはリモートホストとのファイルの変更分を検出して、差分のみを転送するコマンドである。

リモートホストへ差分を送信する。

rsync [options] [src ...] [user@]host:dest

リモートホストから差分を受信する。

rsync [options] [user@]host:src [dest]

rsyncコマンドには次の引数を指定する。

user
リモートホストのユーザ名を指定する。
host
リモートホストのホスト名又はIPアドレスを指定する。

オプション一覧

rsyncに指定できるコマンドオプション一覧を次に示す。

-v
--verbose
処理中の経過ファイル名を表示する。
-q
--quiet
非エラー・メッセージの出力を抑制する。
-a
--archive
元のパーミッションやグループなどを保持したまま同期をとる。
-r
--recursive
指定したディレクトリ下のサブディレクトリも再帰的に処理する。
-e COMMAND
--rsh=COMMAND
使用するリモートシェルを指定する。
$ rsync -av -e ssh /home/tsuka tsuka@host:/backup/
--delete
コピー元で削除されたファイルを、コピー先でも削除する。-aオプションと同時に指定することで、コピー元とコピー先を同期できることになる。
--exclude=PATTERN
PATTERN に一致するファイルを除外する。
$ rsync -av --exclude '*.log' /home/tsuka /backup/
--exclude-from=FILE
FILE から除外パターンを読み取る。
-h
--help
ヘルプを表示する。

終了ステータス

rsyncコマンドは次に示す終了ステータスを返す。

rsyncコマンドの終了ステータス
Exit status 説明
0 成功
1 構文または使用方法のエラー
2 プロトコルの非互換性
3 入出力ファイルまたはディレクトリの選択エラー
4 要求されたアクションはサポートされていません
5 クライアント/サーバプロトコルの開始エラー
6 デーモンがログファイルに追加できない
10 ソケットI/Oのエラー
11 ファイルI/Oエラー
12 rsyncプロトコルデータストリームのエラー
13 プログラム診断のエラー
14 IPCコードのエラー
20 SIGUSR1またはSIGINTを受信した
21 waitpid() が何らかのエラーを返した
22 コアメモリバッファの割り当てエラー
23 エラーによる部分転送
24 消失したソースファイルによる部分転送
25 --max-delete制限で削除を停止
30 データ送受信タイムアウト
35 デーモン接続待ちタイムアウト

ssh

sshのポート番号を指定するには、リモートシェルのオプションとして指定する。

rsync -e "ssh -p 22222" tsuka@example:/from/ ./to/
rsync --rsh="ssh -p 22222" tsuka@example:/from/ ./to/

Linuxコマンド