連載
» 2017年02月02日 05時00分 公開

【 rsync 】コマンド(その1)――ファイルやディレクトリを同期するLinux基本コマンドTips(82)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「rsync」コマンドです。

[西村めぐみ,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、異なるホスト間でもファイルやディレクトリを同期できる「rsync」コマンドです。

rsyncコマンドとは?

 「rsync」は、リモート環境とファイルやディレクトリを「同期(sync)する」というコマンドです。ローカル環境のみでも使用できます。「変更があった分だけ更新する」という機能があるので、ディレクトリ単位のバックアップで特に便利に使えます。



rsyncコマンドの書式

rsync [オプション] 同期元 [同期先]

※[ ]は省略可能な引数を示しています




rsyncコマンドの主なオプション

 rsyncコマンドの主なオプションは次の通りです。

●通常のオプション
短いオプション 長いオプション 意味
-v --verbose 動作内容を表示する
-q --quiet 動作中のメッセージを抑制する
-n --dry-run 試験モード。実際には動作せず、動作内容だけ表示する(「-v」や「--stats」を一緒に指定する)
--stats ファイル数や転送サイズを表示する
--list-only コピーする代わりにファイルのリストを作成する
-a --archive アーカイブモード(「-rlptgoD -no-H -no-A -no-X」相当)
--no-オプション 指定したオプションを無効にする(「-H」を無効にする場合は「--no-H」のように指定する)
-I --ignore-times サイズとタイムスタンプが同じファイルも処理する
--size-only サイズが同じファイルは処理しない
-c --checksum 更新日とサイズではなく、チェックサムで変更の有無をチェックする
--daemon デーモンとして動作(「--daemon --help」でデーモン時に使用できるオプションが確認できる)

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

●「-a」で無効になるオプション
短いオプション 長いオプション 意味
-H --hard-links ハードリンクを保持する
-A --acls ACL(アクセス制御リスト)を保持する(「-p」も同時に指定した扱いになる)
-X --xattrs 拡張属性を保持する

●その他の主な同期オプション
短いオプション 長いオプション 意味
-R --relative 相対パス名を使用する
-d --dirs ディレクトリを再帰しない
-u --update 同期先のファイルの方が新しい場合はスキップする
--inplace ファイルを上書きする
--append 短いファイルに追加する
-b --backup バップアップファイルを作成する(ディレクトリや拡張子を指定しなかった場合は「~」を使用)
--backup-dir=ディレクトリ バックアップファイルを配置するディレクトリを指定
--suffix=拡張子 バックアップファイルの拡張子(デフォルトは「~」)
--existing 同期先に新規ファイルを作成しない
--ignore-existing 同期先にファイルがあったらスキップする
--remove-source-files 同期後にファイルを削除する
--delete 同期元にないファイルを同期先から削除する
--delete-before 同期先にないファイルを同期前に削除する
--delete-during,--del 同期先にないファイルを同期中に削除する
--delete-delay 同期中に削除すべきファイルを見つけて、後で削除する
--delete-after 同期先にないファイルを同期終了後に削除する
--delete-excluded 同期から除外したファイルも削除する
--ignore-errors I/Oエラーがあっても削除する
--force ディレクトリが空ではない場合も削除する
--max-delete=ファイル数 指定した数以上のファイルは削除しない
--max-size=サイズ 指定したサイズより大きなファイルは削除しない
--min-size=サイズ 指定したサイズより小さなファイルは削除しない
--exclude=パターン 指定したパターンにマッチしたファイルは処理しない
--exclude-from=ファイル 除外パターンを指定したファイルから読み込む
--include=パターン 指定したパターンにマッチしたファイルを処理する
--include-from=ファイル 対象パターンを指定したファイルから読み込む
--files-from=ファイル 同期元ファイルのリストを指定したファイルから読み込む
-0 --from0 対象リストなどのファイルを改行ではなくヌル文字(\0)で区切る

●シンボリックリンク関係のオプション
短いオプション 長いオプション 意味
-L --copy-links シンボリックリンクを対象にする
--safe-links リンク先が自分の配下にあるものだけを対象にする
--copy-unsafe-links リンク先が自分の配下にないものだけを対象にする
-k --copy-dirlinks ディレクトリへのリンクの場合もリンク先を転送する
-K --keep-dirlinks ディレクトリへのリンクをたどらない
-l --links シンボリックリンクをシンボリックリンクのままコピーする

●パーミッション関係のオプション
短いオプション 長いオプション 意味
-p --perms パーミッションを保持する
-E --executability 実行可能属性を保持する
--chmod=CHMOD パーミッションを指定する
-t --times タイムスタンプを保持する
-O --omit-dir-times 「--times」オプション指定時、ディレクトリは除外する
-g --group 所有グループをそのまま保持する
-o --owner 所有者をそのまま保持する(自分以外の所有者を保持するにはroot権限が必要)
--numeric-ids ユーザーIDとグループIDを保持する(転送先の名前に対応させない)

●ネットワーク転送関係のオプション(※ローカル転送時も使用可能)
短いオプション 長いオプション 意味
-T --temp-dir=ディレクトリ 指定したディレクトリに一時ディレクトリを作成する
-z --compress 転送中のデータを圧縮する
--compress-level=レベル データの圧縮レベルを指定する
--skip-compress=リストファイル リストファイルに書かれたファイルは圧縮しない
--port=ポート番号 ポート番号を指定する
--sockopts=OPTIONS 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」のように指定)



ディレクトリを同期する

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。