誰がこれが何をするのか教えてもらえますか?
rsync -uva --delete /srv/bkp01 /srv/offbk2/ > ~/offbkp01.log
ログを削除bkp01
しoffbk2
て送信しますoffbkp01.log
か?
誰がこれが何をするのか教えてもらえますか?
rsync -uva --delete /srv/bkp01 /srv/offbk2/ > ~/offbkp01.log
ログを削除bkp01
しoffbk2
て送信しますoffbkp01.log
か?
回答:
これを部分に分割するために、2つの主要なセクションがあり、その後に要約と注記が続きます。
rsync
コマンド:rsync -uva --delete /srv/bkp01 /srv/offbk2/
rsync-command > ~/offbkp01.log
rsync
コマンド:rsync
-これには説明は必要ないと思います(ただし、要求があれば提供します)。-uva
-一連の単一文字オプション(以下に示す短い形式と長い形式):
-u
--update
-すべての変更は、ソース上のファイルと同じ年齢(およびサイズが異なる)または古いファイルにのみ適用するようrsyncに指示します。つまり、rsyncは、宛先を更新するソースからの変更のみを渡す必要がありますが、宛先ファイルが古いバージョンになるような変更は行わないでください。
いくつかの例外があります。タイプの違い(たとえば、1つはファイル、もう1つはディレクトリ)は、日付に関係なく更新されます。シンボリックリンクと他の特別なファイルはこのオプションを無視します。そして、重要なことに、これはどのファイルが削除されるかに影響しません。
-v
--verbose
-実行中にrsyncが出力する情報量を増やします。これがないと、rsyncは(ほとんど?)何も出力しません。このオプションをそのまま使用すると、rsyncは転送中のファイルを通知し、最後に要約を表示します。その他のv
manページが二つ以上言うものの、印刷された情報を増やすよv
デバッグ時にsがのみ使用してください。 -a
--archive
-これは、-rlptgD
一緒にパッケージ化された他のいくつかのオプション()と同等です。長い名前が示すように、ファイルとディレクトリをアーカイブするための多くの一般的なオプションを設定する簡単な方法です。そうなる:-r
--recursive
-ディレクトリを再帰的にコピーするようにrsyncに指示します。これ、またはより特定の-d
--dirs
オプションがない場合、rsyncは、検出したディレクトリをすべてスキップします(そして、出力でそれについて通知します)。 -l
--links
-ソースがシンボリックリンクの場合、宛先にシンボリックリンクを作成します。他のオプションに応じて、シンボリックリンクはスキップされるか、完全に別のコピー(つまり、シンボリックリンクではなくコンテンツ(またはファイルの別のコピー)を持つ真のディレクトリ)になります。 -p
--perms
-宛先ファイルの許可をソースファイルと同じに設定します。 -t
--times
-宛先ファイルの変更時間をソースファイルと同じに設定します。これらの時間を同期させると、rsyncアルゴリズムがより効率的になるため、通常は常に明示的または暗黙的にこれを使用する必要があります。 -g
--group
-宛先のグループ属性をソースと同じに設定します。デフォルトでは名前で関連付けますが、状況によってはグループID番号にフォールバックします。場合は受信 rsyncは、スーパーユーザー(またはでそれを偽造として実行されていない--fake-super
)、上のrsyncを起動したユーザグループのみことを受信側は、可能集合のメンバーです。それ以外の場合、グループは前述の同じユーザーのデフォルトグループに設定されます。 -D
-オプション--devices
と--specials
一緒に同等。彼らは意味する:--devices
-キャラクターおよびブロックデバイスファイルが転送されます。受信側の rsyncがスーパーユーザーとして実行されていない(またはで偽装されている--fake-super
)場合は効果がありません。 --specials
-特殊ファイル(ソケットなど)が転送されます(そうでなければ転送されません)。 --delete
-宛先にはあるがソースにはないファイルを削除するようにrsyncに指示します。これは、上記の更新オプションの影響を受けません(実際、ほとんどのファイルシステムは、どのアクションが新しいかを確認するために必要なデータを保持しないため、どのようになりますか?)。このオプションは、ワイルドカード/グロブ展開後のソースで機能するため、dir / *はdir /と同じではありません。重要な注意事項:--dry-run
最初にオプションを使用して試してみてください。これにより、意図しない変更が行われていないことを確認できるふり転送が行われます。 --ignore-errors
オプションで上書きできますが、おそらくそうしたくない/望まないでしょう。--delete-during
は)、アルゴリズムが使用されます。受信者が古い場合は、--delete-before
使用されます。エラーが発生した場合(他のすべての変更が行われるまで何も削除しないなど)、ファイルが一定の一貫性を維持することが重要な場合は、デフォルトよりも具体的なオプションを使用する必要があります。/srv/bkp01
-ソースファイルまたはディレクトリ。ディレクトリの最後にスラッシュがある場合/ない場合、および他のディレクトリが存在する場合の意味について、いくつかの詳細なルールがあります。あなたは見ることができますUSAGEの詳細については、manページのセクションを、しかし、ここで最後のスラッシュの欠如は、この意味ディレクトリが先にコピーされます、というよりも、このディレクトリの内容を先にコピーされています。これがディレクトリではなくファイルの場合も同じです。/srv/offbk2/
-宛先ディレクトリ。一般に、コマンドのどこかでオプションを指定するためにオプションを使用しない限り、これは常にrsyncコマンドセクションにリストされる最後の項目になります。>
-これにより、stdout(標準出力)が左側にあるものから右側のファイルにリダイレクトされ、その内容になり、ファイルが存在しない場合は作成されます(可能な場合)。いくつかのメモ:2>&1
。順序は重要ですので、どこに置くかを慎重に一般化してください。マジックナンバー1
はstdoutを2
指し、stderrを指し、&
(本質的に)「アドレス」であり、完全なコマンドスニペットは「stderrの出力をstdoutストリームにリダイレクトする」ことを意味します。 >>
代わりに使用できます。stderrを同じ場所にリダイレクトする方法は同じままです。 1> stdout_file 2> stderr_file
。また、コマンドの>>
代わりにを使用>
して、置換ではなく追加を行うこともできます。~
-これは、現在のユーザーのホームディレクトリの省略形であり、次のビットの一部を形成します。~/offbkp01.log
-現在のユーザーのホームディレクトリ内のファイルoffbkp01.log。これは、によるリダイレクトのためにrsyncコマンドの出力が置かれる場所です>
。要約すると、このコマンドは次のことを行います。
/srv/bkp01
、 /srv/offbk2/bkp01
、 そして、それはなりに何かを削除する/srv/offbk2/
ことがではなく、/srv/bkp01
以下の条件で、:
/srv/offbk2/
ものの方が新しい上の変更時間よりも/srv/bkp01
、それは更新されません、場合、両方の項目が残っている同じタイプ((通常のファイル、ディレクトリ、またはシンボリックリンク? ))。 さらに、rsyncは実行中の情報(具体的には、どのファイルが転送されているのか、最終的な要約)を出力し、シェルはそれを ファイルに 書き込みます~/offbkp01.log
。そのログファイルは、まだ存在しない場合は新しく作成され、既に存在する場合は上書きされます。
NB:--fake-super
rsyncにスーパーユーザーのアクティビティをシミュレートさせるオプションです。これを行うには、ファイルの拡張属性を使用して、より大きな権限がなければ設定できなかった属性を保存します。各属性の実際のバージョンは、使用可能なオプションと特権が与えられれば、意味のあるものに設定されます。これにより、スーパーユーザー権限がない場合でもバックアップを作成するのが便利になりますが、実際のセキュリティ属性が設定されていない可能性があるため、rsyncを使用するよりもセキュリティ上のリスクが大きくなる可能性があることに注意してくださいそれらに関する情報がバックアップされていても、適切に。
マニュアルから:
-削除
これにより、rsyncは受信側(送信側にないファイル)から無関係なファイルを削除しますが、同期されているディレクトリのみを削除します。ワイルドカードはシェルによって展開され、rsyncがリクエストを取得するため、ディレクトリの内容にワイルドカード(例: "dir / *")を使用せずに、ディレクトリ全体(例: "dir"または "dir /")を送信するようrsyncに依頼する必要がありますファイルの親ディレクトリではなく、個々のファイルを転送します。転送から除外されたファイルも、-delete-excludedオプションを使用するか、ルールを送信側でのみ一致するものとしてマークしない限り、削除対象から除外されます(フィルター規則セクションの包含/除外修飾子を参照)。
したがって、ワイルドカードを使用しなかった場合、元のディレクトリの一部ではないファイルを宛先から削除します。
ソースディレクトリ:
1.txt
2.txt
3.txt
宛先ディレクトリ:
4.txt
rsyncの後に4.txtがなくなり、1.txt、2.txt、3.txtが宛先になります。
他のものに関して:
uva
いいえ、bkp01
ディレクトリから無関係なファイルを削除するだけです。
また:
-u
、--update
-受信側で新しいファイルをスキップします-v
、--verbose
-冗長性を高める-a
、--archive
-アーカイブモード。-rlptgoDと等しい(-H、-A、-Xなし)rsync -uva --delete /srv/bkp01 /srv/offbk2/
コマンドの出力は、リダイレクト演算子()~/offbkp01.log
を使用してファイルに送信され、代わりに端末に出力されます。ファイルが存在しない場合は作成されます。ファイルが存在する場合、古いコンテンツは消去されます。>
詳細についてはman rsync
、を参照してください。
bkp01
。宛先から、無関係なファイル、つまりソースに存在しないファイルを削除するだけです。