/home/etcを/etcに復元

/home/etcを/etcに復元

バックアップファイルをからにコピーする必要があるため、/mnt/backup/etcこれが/etc 私がcp/mnt/backup/etc*検討しているコマンドです。

しかし、経験によると、これはcp/mnt/backup/etc*ファイルシステムに破壊的なコマンドになる可能性があります。リポジトリ内のファイルには、CentOS7バージョンを新しくインストールするときには存在しないが存在するか/mnt/backup/etc*不明な違いがある可能性があるためです。

両方のディレクトリのファイルを比較し、ファイルに違いがあれば出力するコマンドを考えています。ここから/mnt/backup/etc回復しないファイル(存在する場合)を決定できます。

しばらくこれをやらなかったので、何をすべきかわかりません。wcファイル間の違いを出力するためにコマンドを使用するようですが、2つのファイル間の違いを比較する方法がわかりません。

答え1

事前に比較できるいくつかのオプションがあります。

  • rsync

    rsyncこのフラグを使用して実行すると、-nまず「テストの実行」が実行され、必要に応じて手動で調整できるようにコピーするファイルを確認できます。

    rsync -nvahHSEi /mnt/backup/etc/* /etc
    

    実証的に実行され、より多くの情報も出力されます。なぜ特定のファイルをコピーする必要があります(変更されたサイズ/日付が異なります...)。差が十分に小さい場合は、n実際の「復元」操作を完全に自動化することなくコマンドを再実行できます。

  • diff

    diff2つのファイルとして実行するのではなく、2つのファイルとして実行できます。目次引数でどのファイルが異なるか、その内容が異なる(少なくともテキストファイルの場合)、2つのパスのうちの1つにのみ存在するファイルが表示されます。-rサブディレクトリに再帰的に戻るには、オプションと一緒に使用します。 @Olivier Dulacが指摘したように、最初にdiff -qディレクトリで実行して他のファイルのリストを表示できます(実際の違いはありません)。

  • meld

    これは、2つのディレクトリ間の違いを確認できるGUIベースの比較ツールです。

関連情報