Linux rsyncコマンドは、ローカルマシン、別のホスト、リモートシェル、またはこれらの任意の組み合わせの間でファイルまたはディレクトリを効率的に転送および同期します。 Linuxベースのシステムを使用する場合は、この強力なコマンドを使用して生産性を向上させる必要があります。この記事の助けを借りて、あなたはそれを使い始めるために必要なすべてを学ぶでしょう。
フォルダを同期したり、ファイルを手動でコピーしたりすると、非常に時間がかかる場合があります。 rsyncユーティリティは、時間を節約するための優れた機能を追加しながら、ほとんどの作業を実行できます。転送中に接続が失われた場合でも、接続が再確立されると、このツールは中断したところから正確に起動します。
rsyncの基本的な構文は次のように機能します:
rsync [optional modifiers] [SRC] [DEST]
Linuxrsyncを使用する方法はいくつかあります。この例では、[オプションの修飾子] 実行するアクションを示します、 [SRC] はソースディレクトリであり、 [DEST] 宛先ディレクトリまたはマシンです。
SSHやRSHなどのリモートシェルを使用する場合、rsyncの構文は少し異なります。
リモートシェルにアクセスするには( PULL )rsyncコマンドを使用します:
rsync [optional modifiers] [USER@]HOST:SRC [DEST]
リモートシェルにアクセスするには(プッシュ )rsyncコマンドを使用します:
rsync [optional modifiers] SRC [USER@]HOST:[DEST]
Rsyncバージョンを確認する方法
rsyncをチェックする前に、使用するVPSにログインする必要があります。この役立つチュートリアルでは、PuttySSHを使用してWindowsマシンでこれを行う方法を説明します。 MacOSまたはLinuxコンピュータを使用している場合は、代わりにターミナルを使用してください。
Rsyncには、多くのLinuxディストリビューションがプリインストールされています。 rsyncがマシンにインストールされているかどうかを確認するには、次のコマンドを実行します。
rsync -version
Ubuntuディストリビューションでは、コマンドは次の出力を生成しました:
rsync version 3.1.3 protocol version 31
これは、rsyncバージョン3.1.3がすでにマシン上にあることを意味します。簡単ですよね?
Rsyncのインストール方法
マシンにrsyncがプリインストールされていない場合は、わずか1分で手動でインストールできます。 Debian Ubuntu、などのベースのディストリビューション 次のコマンドを使用して実行できます:
apt-get install rsync
Fedoraのようなrpmベースのディストリビューションの場合 およびCentOS 次のコマンドを使用します:
yum install rsync
MacOS 次のコマンドを使用します:
brew install rsync
それでおしまい! Linux rsyncは、データの同期、ファイル転送の実行、ファイルの削除の準備ができています。前述のコマンドを使用して、インストールが成功したかどうかを確認できます。
rsync -version
Rsyncコマンドの使用方法
このチュートリアルでは、Linuxデスクトップに originalという名前の2つのディレクトリを作成します。 および複製 。元のディレクトリには3つのファイルがありますが、複製は空です。それでは、rsyncが生産性を向上させる新しい方法をどのように作成するかを見てみましょう。
2つのテストディレクトリを作成するには、次のコマンドを使用します。
cd ~ mkdir original mkdir duplicate touch original/file{1..3}
再確認する場合は、 lsを使用してください ディレクトリ内のすべてのファイルを一覧表示するコマンド:
ls original
出力は次のようになります:
file1 file2 file3
lsを使用する場合 ディレクトリが重複しているコマンドの場合、Outlookは空である必要があります。
ディレクトリが設定されたので、さらにいくつかのコマンドを試してみましょう。
次のコマンドは、元の内のすべてのファイルをコピーまたは同期します 重複へのディレクトリ ディレクトリ。
rsync original/* duplicate/
* rsyncコマンドに、元のディレクトリ内のすべてを複製に同期するように指示します。
新しい画像またはファイルを元のフォルダに配置して同じコマンドを再実行すると、新しい画像のみがコピー先にコピーされます。
この機能は、帯域幅が制限されたネットワークを介してファイルをコピーする場合に便利です。
Rsyncの最も一般的なコマンド
rsyncで使用される最も一般的なコマンドのリストは次のとおりです。
これにより、アーカイブモードが有効になります。
-a, --archive
これにより、プロセスの進行状況を視覚的に出力できます。
-v, --verbose
これは人間が読める形式で出力します。
-h, --human-readable format
これにより、転送中にファイルデータが圧縮されます。
-z, --compress
これは、データを再帰的にコピーするためのものです
-r
上記のコマンドは、元のからのファイルのみをコピーすることに注意してください フォルダのメインディレクトリであり、サブディレクトリではありません。
サブディレクトリもコピーする場合は、次のコマンドを使用する必要があります。
rsync -r original/ duplicate/
-r ( –再帰的 )オプションは、サブディレクトリを含むすべてをコピーするようにrsyncに指示します および元のフォルダのファイル。
/ 元のの後に使用される修飾子 rsyncにコピーするように指示します 元のディレクトリの内容を複製フォルダに追加します。
ファイルを同期する場合は 宛先フォルダにあるが元のフォルダにはないファイルをコピーすることを意味します。次のコマンドを使用します。
rsync -r original duplicate/
このコマンドを使用すると、元のフォルダーと複製フォルダーの両方にすべて同じファイルが含まれるようになります。
Rsyncコマンドを組み合わせる方法
もう1つの便利なオプションは、 -a(–archive)です。 他の多くのコマンドと結合できるためです。つまり、ファイルをコピーするだけでなく、権限、変更時刻、その他の日付もコピーします。
-aを追加する -vのオプション これに似たものになります:
rsync -av --dry-run original/ duplicate/
心配しないでください、それは複雑に見えるだけです。分解しましょう。
このコマンドは、実際に変更を加えることなく、コピーされるファイルのみを表示します。このコマンドを使用すると、コピーされるファイルのリストを取得できます。
すべてのファイルがコピーしたいファイルである場合は、コマンドを —dry-runなしで再実行します。 。
—ドライラン (または -n )rsyncに変更を加えない試運転を実行させます。
-aを追加する場合 -vのオプション オプション、 -avを作成 私たちのコマンドでは、冗長性を高めます。外観は次のとおりです。
rsync -av original/ duplicate/
2つのフォルダを同期して、元のフォルダに存在しない重複フォルダ内のアイテムを削除する場合は、 –削除を追加します。 このようなオプション:
rsync -av --delete original/ duplicate/
除外することもできます 2つのフォルダを同期する場合の特定のファイルまたはサブディレクトリ。これを行うには、 -exclude =を追加します 。複数のファイルを指定する必要がある場合は、コンマで区切ります。
rsync -av --exclude=file1,file2 original/ duplicate/
含めることもできます 同期中の特定のファイルまたはサブディレクトリ。これを行うには、 -include =を追加します 。これは、-exclude=オプションとともに使用することもできます。以下の例には、文字 Lで始まるファイルが含まれます 他のすべてのファイルを除外します:
rsync -av --include=L* --exclude=* original/ duplicate/
Rsyncを使用して、同期できるファイルサイズを指定することもできます。これを行うには、 –max-sizeを使用します オプション:
rsync -av --max-size=10k original/ duplicate/
オプション-z(–compress)を使用する ネットワーク経由で転送されているファイルを統合します。ボーナスとして、ソースサーバーから別のサーバーに転送する方法を見てみましょう。コマンドは次のようになります:
rsync -az ~/Desktop/Original [email protected]:~/tmp/
前に述べたように-z ファイルを圧縮します、 -a 、または-zにaを追加するだけで、すべての権限も確実にコピーされます。
〜/デスクトップ/オリジナル ソースです。これはローカルディレクトリです。ログインしているマシン上にあるディレクトリであり、最後に [email protected]:〜/ tmp / 宛先を示します。 [email protected] は宛先リモートサーバーアドレスですが、:〜/ tmp / そのマシン上の特定のフォルダを指します。
上記のコマンドに加えて、 -Pを追加できます これは、オプション –progress を組み合わせます および–部分的 。これにより、転送中のファイルの進行状況バーが表示され、中断されたファイル転送を再開することもできます。
rsync -azP [SRC] [DEST]
出力は次のようになります:
sending incremental file list ./ file1 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=1/3) file2 0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=2/3) file3 0 100% 0.00kB/s 0:00:00 (xfer#3, to-check=3/3)
次に、コマンドを再度実行すると、出力が短くなります。これは、新しい変更が行われていないためです。出力は次のようになります:
sending incremental file list send 26 bytes received 5 bytes 1200.00 bytes/sec total size is 0 speedup is 0.00
特定のファイルのみを転送する場合は、次のコマンドで指定できます。
touch original/file{1..5} rsync -azP [SRC] [DEST]
これにより、前のコマンドと同様の出力が得られますが、中括弧で囲まれたファイルのみが指定されます。
Rsyncバックアップを作成する方法
もう1つの重要なコマンドは、Rsyncバックアップを作成することです。これを行うには、 –バックアップを組み合わせます。 – dir コマンドを使用して、バックアップファイルの保存場所を指定できます。
rsync -a --delete --backup --backup-dir=/path/to/backup /path/to/SRC [DEST]
Rsyncコマンドに関しては、氷山の一角についてのみ説明しました。 Linux Rsyncは、すべてのサーバー管理者またはLinux開発者が知っておくべき非常に強力なユーティリティです。インストールから基本的なコマンドまで、開始するためのすべてをカバーしました。より高度な機能について知りたい場合は、公式ドキュメントを確認してください。
生産性を向上させる準備をしてください。プロジェクトを頑張ってください。