Linuxコマンド - rsync
提供: MochiuWiki : SUSE, EC, PCB
概要
rsyncコマンドは、リモート環境とファイルやディレクトリを同期(sync)するコマンドである。(ローカル環境のみでも使用できる。)
変更があった分だけ更新する機能があるため、特にディレクトリ単位のバックアップに便利である。
オプション
rsyncコマンドの書式を、以下に示す。
rsync <オプション> <同期元のディレクトリのパス> <同期先のディレクトリのパス>
下表に、rsyncコマンドの主なオプションを示す。
| オプション | 説明 |
|---|---|
| -a --archive |
アーカイブモード(-rlptgoD -no-H -no-A -no-X相当)
|
| -c --checksum |
更新日とサイズではなく、チェックサムで変更の有無をチェックする。 |
| --daemon | デーモンとして動作する。(--daemon --helpでデーモン時に使用できるオプションが確認できる)
|
| -I --ignore-times |
サイズとタイムスタンプが同じファイルも処理する。 |
| --list-only | コピーする代わりにファイルのリストを作成する。 |
| -n --dry-run |
試験モード。 実際には動作せず、動作内容だけ表示する。( -vや--statsを一緒に指定する)
|
| --no-<オプション名> | 指定したオプションを無効にする。(-Hを無効にする場合は、--no-Hのように指定する)
|
| -q --quiet |
動作中のメッセージを抑制する。 |
| --stats | ファイル数や転送サイズを表示する。 |
| --size-only | 同じサイズのファイルは処理しない。 |
| -v --verbose |
動作内容を表示する。 |
| オプション | 説明 |
|---|---|
| -r --recursive |
ディレクトリを再帰的に処理する。 |
| -l --links |
シンボリックリンクをシンボリックリンクのままコピーする。 |
| -p --perms |
パーミッションを保持する。 |
| -t --times |
タイムスタンプを保持する。 |
| -g --group |
所有グループをそのまま保持する。 |
| -o --owner |
所有者をそのまま保持する。(自分以外の所有者を保持するにはroot権限が必要) |
| -D | デバイスファイルや特殊ファイルを保持する。(--devices --specials相当)
|
| --devices | デバイスファイルを保持する。(root権限が必要) |
| --specials | 特殊ファイルを保持する。 |
| オプション | 説明 |
|---|---|
| -H --hard-links |
ハードリンクを保持する。 |
| -l --links |
ACL(アクセス制御リスト)を保持する。(-pも同時に指定した扱いになる)
|
| -X --xattrs |
拡張属性を保持する。 |
| オプション | 説明 |
|---|---|
| --copy-unsafe-links | リンク先が自分の配下にないものだけを対象にする。 |
| -k --copy-dirlinks |
ディレクトリへのリンクの場合もリンク先を転送する。 |
| -K --keep-dirlinks |
ディレクトリへのリンクをたどらない。 |
| -l --links |
シンボリックリンクをシンボリックリンクのままコピーする。 |
| -L --copy-links |
シンボリックリンクを対象にする。 |
| --safe-links | リンク先が自分の配下にあるものだけを対象にする。 |
| オプション | 説明 |
|---|---|
| --chmod=CHMOD | パーミッションを指定する。 |
| -E --executability |
実行可能属性を保持する。 |
| -g --group |
所有グループをそのまま保持する。 |
| --numeric-ids | ユーザIDとグループIDを保持する。(転送先の名前に対応させない) |
| -O --omit-dir-times |
--timesオプション指定時、ディレクトリは除外する。
|
| -o --owner |
所有者をそのまま保持する。(自分以外の所有者を保持するにはroot権限が必要) |
| -p --perms |
パーミッションを保持する。 |
| -t --times |
タイムスタンプを保持する。 |
rsyncのインストール
ソースコードからインストール
ビルドに必要な依存関係のライブラリをインストールする。
sudo zypper install libopenssl-devel libacl-devel xxhash-devel liblz4-devel libzstd-devel python3 -mpip install --user commonmark # または sudo zypper install libopenssl-devel libacl-devel xxhash-devel liblz4-devel libzstd-devel python3-CommonMark
rsyncのGitHubからソースコードをダウンロードする。
wget https://github.com/WayneD/rsync/archive/refs/tags/v<x.x.x>.tar.gz # Release版 tar xf rsync.tar.gz cd rsync # または git clone https://github.com/WayneD/rsync.git rsync # Debug版 cd rsync
rsyncをビルドおよびインストールする。
mkdir build && cd build ../configure --prefix=$HOME/InstallSoftware/rsync --disable-lz4 --disable-zstd --disable-md2man make -j $(nproc) make install
rsyncを動作させるために必要なライブラリをインストールする。
sudo zypper install openssl libxxhash