GNU/Linux >> Linux の 問題 >  >> Linux

Linuxシステム管理者向けの5つの高度なrsyncのヒント

「Sysadminツール:rsyncを使用したバックアップ、復元、ファイル同期の管理」というタイトルの以前の記事で、cpについて説明しました。 およびsftp 、およびrsyncの基本を確認しました ファイルを移動するため。 tarとSSHでSysadminを有効にするに関する他のすばらしい記事もいくつかあります。リモートシステムとの間でファイルをコピーし、作業中のもの(または、さらに言えば、重要な会社のデータ)のバックアップを簡単に実行できることは、私が何度も使用するsysadminツールボックスの基本的で便利なツールです。ただし、信頼性の低いリンクや低速なリンク間でデータを移動するなど、もう少し洗練された方法を実行したい場合もあります。 Rsync 転送中の暗号化を保護するための暗号化、フローを改善するための圧縮、期待どおりの結果が得られるようにするためのチェックサムを提供できます。

[読者も気に入っています:SCPとSFTPを使用してLinuxホスト間でファイルを安全にコピーする方法]

ウェブサイトの維持

私は最初にrsyncを使い始めました CI / CDが父親の目にきらめいていた暗黒時代に、私が管理していたWebサイトのローカルバージョンを同期するため。ローカルコピーを保持して作業し、サイトの最新バージョンのバックアップをとることもできます。そのシナリオを例として使用します。 rsyncを使用できます バックアップ用に、またはテストから本番へのパイプラインを作成するための迅速な方法として、リモートファイルシステムを同期します。また、ディレクトリの同期にも使用し、tarを使用しました ローカルバックアップを作成するには:

skipworthy  ~  enable  websync  ls -al
total 8
drwxrwxr-x 2 skipworthy skipworthy 4096 Dec 16 13:57 .
drwxrwxr-x 5 skipworthy skipworthy 4096 Dec 16 14:01 ..
 skipworthy  ~  enable  websync  rsync -aruv 192.168.11.111:/usr/share/httpd/enable ./
receiving incremental file list
enable/
enable/bar
enable/foo
enable/index

sent 85 bytes  received 229 bytes  209.33 bytes/sec
total size is 0  speedup is 0.00
skipworthy  ~  enable  websync  ls -l
total 4
dr-xr-xr-x 2 skipworthy skipworthy 4096 Dec 16 13:49 enable

以前と同じように、ローカルのrsync mtime を維持しながら、アーカイブモードで実行しています およびファイル属性、サブディレクトリへの再帰、および新規または変更されたデータのみの更新。

-v ほとんどの場合、 verboseを意味します 、コンソールに出力を送信します。

したがって、サイトにページを追加してアップロードしたいとします。

skipworthy  ~  enable  websync  rsync -aruv ./* 192.168.11.111:/usr/share/httpd/enable
sending incremental file list
pagetwo
rsync: recv_generator: mkdir "/usr/share/httpd/enable/enable" failed: Permission denied (13)

これは、rsyncを使用するときに考慮する必要のあることがいくつかあることに注意する良い機会です。 ファイルをプッシュします。 Rsync 宛先ディレクトリだけでなく、ディレクトリツリー全体に対するアクセス許可が必要です。これを達成する方法はいくつかあります。 1つは、 uidを指定することです。 およびgid rsync/etc/rsyncd.confのデーモン 。別の方法は、rsyncを実行することです 必要な権限を持つユーザーとして。これらは両方とも安全な環境では問題になる可能性があるため、ここで慎重に踏み込んでください。

また、デフォルトでは、rsyncを使用する場合にも注意してください リモートで、rsyncに直接接続しています ポート873でのサービス 。ファイアウォールのルールとアクセス許可を設定するときは、それについて考慮する必要があります。さらに、SELinuxパーミッションがありますが、これはまったく別の議論であり、この記事の範囲内ではありません。一般に、ディレクトリのアクセス許可の問題とセキュリティの問題に対する1つの解決策は、SSHを使用することです(これは今ではおなじみのように聞こえるはずです)。 SSHは暗号化されたトンネルを設定し、任意のポートでリッスンするように設定できます。もちろん、SSHキーを指定して接続をさらに保護し、リモート接続をもう少し自動化しやすくすることができます。

高度な機能

この次の例では、これらの変更をルートとしてプッシュします。私のようにならないでください:

rsync -aruv -e ssh  ./* [email protected]:/usr/share/httpd/enable
[email protected]'s password:
sending incremental file list
pagetwo

sent 246 bytes  received 36 bytes  43.38 bytes/sec
total size is 31  speedup is 0.11

ポートやキーの場所の指定など、通常のSSHオプションを接続に使用できることに再度注意してください。 Rsync 両端にインストールされ、.ssh/configで構成されている限り、リモートシェルオプションを選択することもできます。 。

チェックサム

チェックサムについては前に説明しましたが、ここには2つの潜在的に役立つことがあります。まず、rsync デフォルトでチェックサムを実行し、ターゲットでチェックサムを検証します。これにより、飛行中にデータが失われたり破損したりする可能性がないことを警告します。

次に、チェックサムを使用して、転送するファイル(つまり、実際に異なる)を決定することもできます。 送信元と宛先の間)。これは、 mtimeかどうかわからない場合に便利です。 /一度に 必要なファイルの実際のバージョンを表します。同期しようとしていたファイルシステムが変更された 別のアプリによるので、時間が正しくありませんでした。

skipworthy  ~  enable  websync  rsync -aruv -e ssh --checksum 192.168.11.111:/usr/share/httpd/enable ./
receiving incremental file list

sent 26 bytes  received 364 bytes  780.00 bytes/sec

:これにより、各サイドのファイルごとにチェックサムが生成されて比較されるため、処理と転送で追加のオーバーヘッドが発生します。

圧縮

もう1つの便利なトリックは、圧縮です。 -z オプションはストリームを圧縮します、--zc 圧縮タイプを設定し、--zl レベルを設定します:

skipworthy  ~  enable  websync  rsync -aruv -e ssh --zc=zlib --zl=6 192.168.11.111:/usr/share/httpd/enable ./
receiving incremental file list

sent 26 bytes  received 248 bytes  548.00 bytes/sec
total size is 31  speedup is 0.11

タイプまたはレベルを指定しない場合は、rsync RSYNC_COMPRESS_LISTで提供されるリストを使用します 圧縮の一般的なタイプとレベルについてネゴシエートする環境変数。

[システム自動化についてもっと知りたいですか? RedHatの無料の本であるTheAutomatedEnterpriseを始めましょう。 ]

まとめ

これで、rsyncが完成しました。 これは、Linuxシステム管理に依然として有用で関連性のあるツールのもう1つです。これは、私のキャリアの中で何度も使用できてうれしいツールです。ここで探索する余地がなかったために、これを使用して実行できることは他にもたくさんあります。いつものように、マニュアルページを確認してください。


Linux
  1. Linuxで印刷するための3つのヒント

  2. Linuxコマンドラインに関する8つのヒント

  3. 大規模なLinuxバックアップに高度なrsyncを使用する方法

  1. cronを使用してタスクをスケジュールするためのLinuxのヒント

  2. Linuxシステム管理者向けのAnsibleの謎を解き明かす

  3. Linuxの高度なセキュリティ手順

  1. 信頼性の高いLinuxシステム自動化のための8つのヒント

  2. システム管理者向けの3つの確かな自己レビューのヒント

  3. SysAdmins用の80のLinux監視ツール