Linux rsyncコマンド、構文、および例[ガイド]
rsync ( r 同期をエモートします )コマンドは、ローカルストレージディスク間およびネットワーク経由でファイルを同期できるファイルコピーツールです。
とても良いので流行していますこれは通常、ファイルのバックアップ、ファイルサーバーを相互に最新の状態に保つため、およびWebアプリのコードとアセットをサーバーにデプロイするために使用されます。
rsync 表示できるほぼすべてのファイルをコピーでき、ファイルサイズと変更日に基づいて同期して、何が変更され、何を更新する必要があるかを確認できます。
rsync コマンドはBIGであり、このガイドで最も一般的な使用シナリオをカバーするいくつかの実用的なアプリケーションを開始します 。
構文
rsync OPTIONS SOURCE DESTINATION
注:
- OPTIONSは、以下のリストのオプションのリストで、スペースで区切られています
- SOURCEは、同期するファイルまたはフォルダーのソースへのパスであり、リモートホストの詳細を含めることができます
- DESTINATIONは、ファイルまたはフォルダーを同期する宛先へのパスであり、リモートホストの詳細を含めることができます
- ソースと宛先が正しい必要があります!
オプション
rsyncで一般的に使用されるオプションは次のとおりです。 、マニュアルから直接:
コピーするもの:
-r, --recursive Recurse into directories -R, --relative Use relative path names --exclude=PATTERN Exclude files matching PATTERN --exclude-from=FILE Read exclude patterns from FILE -I, --ignore-times Don't exclude files that match length and time --size-only Only use file size when determining if a file should be transferred [email protected] --modify-window=NUM Timestamp window (seconds) for file match (default=0) --include=PATTERN Don't exclude files matching PATTERN --include-from=FILE Read include patterns from FILE
コピー方法:
-n, --dry-run Perform a trial run with no changes made -l, --links Copy symlinks as symlinks -L, --copy-links Transform symlink into referent file/dir --copy-unsafe-links Only "unsafe" symlinks are transformed --safe-links Ignore links outside the destination tree --munge-links Munge symlinks to make them safer -H, --hard-links Preserve hard links --devices Preserve device files (super-user only) --specials Preserve special files -D, --devices --specials Preserve devices (super-user only) +files -g, --group Preserve group -o, --owner Preserve owner (super-user only) -p, --perms Preserve permissions --remove-source-files Sender removes synchronized files (non-dir) -t, --times Preserve times -S, --sparse Handle sparse files efficiently -x, --one-file-system Don't cross filesystem boundaries -B, --block-size=SIZE Force a fixed checksum block-size (default 700) -e, --rsh=COMMAND Specify rsh replacement --rsync-path=PATH Specify path to rsync on the remote machine --numeric-ids Don't map uid/gid values by user/group name --timeout=SECONDS Set IO timeout in seconds -W, --whole-file Copy whole files, no incremental checks
宛先オプション:
-a, --archive Archive mode equals -rlptgoD (no -H,-A,-X) -b, --backup Make backups (see --suffix & --backup-dir) --backup-dir=DIR Make backups into this directory -z, --compress Compress file data during the transfer -c, --checksum Skip based on checksum, not mod-time & size -C, --cvs-exclude Auto ignore files in the same way CVS does --existing Only update files that already exist --delete Delete files that don't exist on the sending side --delete-excluded Also delete excluded files on the receiving side --delete-after Receiver deletes after transfer, not during --force Force deletion of directories even if not empty --ignore-errors Delete even if there are IO errors --max-delete=NUM Don't delete more than NUM files --log-file-format=FMT Log file transfers using specified format --partial Keep partially transferred files --progress Show progress during transfer -P Equivalent to --partial --progress --stats Give some file transfer stats -T --temp-dir=DIR Create temporary files in directory DIR --compare-dest=DIR Also compare destination files relative to DIR -u, --update Update only (don't overwrite newer files)
その他のオプション:
--address=ADDRESS Bind to the specified address --blocking-io Use blocking IO for the remote shell --bwlimit=KBPS Limit I/O bandwidth, KBytes per second --config=FILE Specify alternate rsyncd.conf file (daemon) --daemon Run as a rsync daemon --no-detach Do not detach from the parent (daemon) --password-file=FILE Get daemon-access password from FILE --port=PORT Specify alternate rsyncd port number -f, --read-batch=FILE Read batch file -F, --write-batch=FILE Write batch file --version Print version number -v, --verbose Increase verbosity -q, --quiet Decrease verbosity -4, --ipv4 Prefer IPv4 -6, --ipv6 Prefer IPv6 -h, --help Show this help screen
オプションの完全なリストについては、 rsyncを参照してください。 実行によるユーザーマニュアル:
man rsync
例
以下の各オプションの意味を繰り返すことはしません。オプションの意味がわからない場合は、必ず上のリストを参照してください。間違ったコマンドを実行してデータを失いたくない場合は、
ローカルからローカル(単一ファイル)
rsync を使用して、ローカルマシン上のあるディレクトリから別のディレクトリに単一のファイルを同期する方法は次のとおりです。 :
rsync -zvh /path/to/my-file.tar /path/to/destination/
ここからは、rsyncの最も一般的な使用シナリオであるため、すべての例でディレクトリの同期に焦点を当てます。
ローカルからローカル(ディレクトリ)
同じマシン上の1つのディレクトリから別のディレクトリにすべてのファイルを同期します:
rsync -avzh /path/to/source /path/to/destination
-avzhとは何ですか?統合された一連のオプションです。これは、-a -v -z -hと入力するより簡単な方法です。
ローカルからリモート(ディレクトリ)
ローカルのソースディレクトリからネットワーク経由でリモートコンピュータの宛先にすべてのファイルを同期します:
rsync -avz /path/to/source/ [email protected]:/path/at/destination/
注:
- ユーザー名 リモートシステムのユーザーです
- / path / to / source / ローカルコンピュータのソースディレクトリへのパスです
- 192.168.1.11 はリモートシステムのIPアドレスです–IPアドレスまたはホスト名を使用できます
- / path / at / destination / リモートファイルシステム上のパスです
- 同期はrsyncを使用して行われます デーモン
SSH(ディレクトリ)を使用したローカルからリモートへ
-e オプションを使用すると、 rsyncで使用されるプロトコルを指定できます SSHを使用してファイルを安全に転送することを指定できます:
rsync -avzh -e ssh /path/to/source/ [email protected]:/path/at/destination/
リモートからローカル(ディレクトリ)
リモートコンピューターのソースディレクトリからローカルコンピューターの宛先にネットワーク経由ですべてのファイルを同期します。
rsync -avzh [email protected]:/path/to/source /path/to/destination
注:
- ユーザー名 リモートシステムのユーザーです
- 192.168.1.11 はリモートシステムのIPアドレスです–IPアドレスまたはホスト名を使用できます
- / path / to / source リモートファイルシステム上のパスです
- / path / to / destination ローカルコンピュータの宛先です
- 同期はrsyncを使用して行われます デーモン
SSH(ディレクトリ)を使用したローカルへのリモート
rsync -avzh -e ssh [email protected]:/path/to/source /path/to/destination
ディレクトリで示したように、SSHを使用して、ローカルからリモート、リモートからローカルに単一のファイルを同期することもできます。
同期時に考慮すべきその他の事項
帯域幅を検討する
インターネット経由で同期している場合は、使用する帯域幅を制限して、ネットワーク上の他のサービスの速度を低下させないようにすることができます。
rsync -avz --bwlimit 512 /path/to/source/ [email protected]:/path/at/destination/
削除を検討する
ファイルまたはフォルダーがソースで削除されたが、宛先に存在する場合は、ソースの正確なミラーになるように、宛先のファイルまたはフォルダーを削除することをお勧めします。このオプションを使用する前に、削除するものがあることを常に確認してください:
rsync -avz --delete /path/to/source/ [email protected]:/path/at/destination/
ファイルの包含または除外
ファイルパターンを照合してファイルを含めたり除外したりします。同期したくないファイルがある場合は、除外できます:
rsync -avz -e ssh --exclude '*' --include 'keep*' /path/to/source/ [email protected]:/path/at/destination/
このrsyncコマンドは、ファイルとディレクトリのみを同期します。これは「keep-」で始まり、他のすべてのファイルとディレクトリ(*)を除外します。
ドライランを検討する
ドライラン 変更されるファイルは印刷されますが、実際には印刷されません 何でも–ファイルが同期または変更されることはないため、さまざまなオプションを試して効果を確認できます。
rsync -avz --dry-run /path/to/source/ [email protected]:/path/at/destination/
結論
システム上で多数のファイルを移動する場合は、Enterキーを押す前に入力を確認してください。間違った方向に同期して、重要なファイルを削除しないでください。
Linuxシェルコマンドに関する他の記事をチェックしてください!
-
ファイルとディレクトリを一覧表示するLinuxのlsコマンド
ls Linuxのコマンドは、おそらく最初に使用する必要のあるコマンドの1つです。この記事では、コマンドと一般的に使用されるパラメータについて説明します。 私が好むオプションのセットは次のとおりです。 ls -Zaltrh 各オプションを個別に掘り下げて、オプションのグロブ全体が役立つ理由を説明しましょう。 LinuxLSコマンド構文 #ls [OPTION] [FILE] OPTIONS: [-a], do not ignore entries starting with . or .. [-h], with -l, print sizes in human readable form
-
コマンド プロンプトの基本:ファイルとフォルダの操作
コマンド プロンプトの基本:ファイルとフォルダーの操作 エクスプローラーを使用してファイルをナビゲートするのにうんざりしていませんか?開発者または IT プロフェッショナルでない限り、それはあなたではないかもしれません。開発者であろうとなかろうと、基本的なコマンド ラインの知識があると常に役に立ちます。 このガイドでは、ターミナルで作業するときに使用できる一般的なファイル操作コマンドをいくつか紹介します。 コマンド プロンプト (または PowerShell または Windows ターミナル) からファイル システムを走査するには、次の 2 つの基本的なコマンドが必要です:cd と d