「Linuxコマンド - rsync」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
125行目: 125行目:
|-
|-
| -t<br>--times || タイムスタンプを保持する。
| -t<br>--times || タイムスタンプを保持する。
|}
</center>
<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|+ ネットワーク転送関係のオプション<br>(ローカル転送時も使用可能)
|-
! style="background-color:#66CCFF;" | オプション
! style="background-color:#66CCFF;" | 説明
|-
| -T<br>--temp-dir=<ディレクトリのパス> || 指定したディレクトリに一時ディレクトリを作成する。
|-
| -z<br>--compress || 転送中のデータを圧縮する。
|-
| --compress-level=<レベル> || データの圧縮レベルを指定する。
|-
| --skip-compress=<リストファイル> || リストファイルに書かれたファイルは圧縮しない。
|-
| --port=<ポート番号> || ポート番号を指定する。
|-
| --sockopts=<TCPオプション> || TCPオプションを指定する。
|-
| -8<br>--8-bit-output || 8ビット以上の文字をエスケープしない。
|-
| -h<br>--human-readable || 数字を読みやすい単位で表示する。
|-
| --progress || 転送の進行状況を表示する。
|-
| -P || <code>--partial --progress</code>と同様である。
|-
| --partial || 転送を中断したファイルを保持する。
|-
| --partial-dir=<ディレクトリのパス> || 転送を中断したファイルを保存するディレクトリ。
|-
| -4<br>--ipv4 || IPv4を使用する。
|-
| -6<br>--ipv6 || IPv6を使用する。
|-
| --timeout=<秒数> || I/Oタイムアウトの秒数。
|-
| --iconv=<変換方法> || ファイル名の変換方法を指定する。<br>(転送元がmacOSの場合は、<code>--iconv=UTF-8-MAC,UTF-8</code>のように指定する)
|}
|}
</center>
</center>

2021年10月30日 (土) 09:57時点における版

概要

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
動作内容を表示する。


-aオプション使用時に有効になるオプション
オプション 説明
-r
--recursive
ディレクトリを再帰的に処理する。
-l
--links
シンボリックリンクをシンボリックリンクのままコピーする。
-p
--perms
パーミッションを保持する。
-t
--times
タイムスタンプを保持する。
-g
--group
所有グループをそのまま保持する。
-o
--owner
所有者をそのまま保持する。(自分以外の所有者を保持するにはroot権限が必要)
-D デバイスファイルや特殊ファイルを保持する。(--devices --specials相当)
--devices デバイスファイルを保持する。(root権限が必要)
--specials 特殊ファイルを保持する。


-aオプション使用時に無効になるオプション
オプション 説明
-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
タイムスタンプを保持する。


ネットワーク転送関係のオプション
(ローカル転送時も使用可能)
オプション 説明
-T
--temp-dir=<ディレクトリのパス>
指定したディレクトリに一時ディレクトリを作成する。
-z
--compress
転送中のデータを圧縮する。
--compress-level=<レベル> データの圧縮レベルを指定する。
--skip-compress=<リストファイル> リストファイルに書かれたファイルは圧縮しない。
--port=<ポート番号> ポート番号を指定する。
--sockopts=<TCPオプション> TCPオプションを指定する。
-8
--8-bit-output
8ビット以上の文字をエスケープしない。
-h
--human-readable
数字を読みやすい単位で表示する。
--progress 転送の進行状況を表示する。
-P --partial --progressと同様である。
--partial 転送を中断したファイルを保持する。
--partial-dir=<ディレクトリのパス> 転送を中断したファイルを保存するディレクトリ。
-4
--ipv4
IPv4を使用する。
-6
--ipv6
IPv6を使用する。
--timeout=<秒数> I/Oタイムアウトの秒数。
--iconv=<変換方法> ファイル名の変換方法を指定する。
(転送元がmacOSの場合は、--iconv=UTF-8-MAC,UTF-8のように指定する)



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