rsyncはリモートホストとのファイルの変更分を検出して、差分のみを転送するコマンドである。
リモートホストへ差分を送信する。
rsync [options] [src ...] [user@]host:dest
リモートホストから差分を受信する。
rsync [options] [user@]host:src [dest]
rsyncコマンドには次の引数を指定する。
rsyncに指定できるコマンドオプション一覧を次に示す。
-v
--verbose
-q
--quiet
-a
--archive
-r
--recursive
-e COMMAND
--rsh=COMMAND
$ rsync -av -e ssh /home/tsuka tsuka@host:/backup/
--delete
--exclude=PATTERN
$ rsync -av --exclude '*.log' /home/tsuka /backup/
--exclude-from=FILE
-h
--help
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のポート番号を指定するには、リモートシェルのオプションとして指定する。
rsync -e "ssh -p 22222" tsuka@example:/from/ ./to/
rsync --rsh="ssh -p 22222" tsuka@example:/from/ ./to/