長年にわたってシステムファイルに対するすべての変更を追跡する最良の方法は何ですか?

長年にわたってシステムファイルに対するすべての変更を追跡する最良の方法は何ですか?

多くのLinuxユーザーがそう思うように、私は長年にわたり多くのスレッド、ブログ投稿、ビデオなどのアドバイスに従い、設定を改善するためにシステムファイルをさまざまに変更しました。

これらのいくつかは、キーボードレイアウトやマウス設定の変更/変更などの個人的な好みやカスタマイズのためのものです。一部のメーカー固有の問題により、スリープ状態で目立たないノートブックを修正したり、オーディオが正しく機能するようにオーディオドライバの設定を操作したりするなど、トラブルシューティングに重点を置くことがあります。

今すぐ新しくインストールして再起動したいと思います。私は同じディストリビューションと同じノートブックを使用する予定なので、必要な方法で動作するようにしたり、まったく機能するようにしたい場合は、これらの変更をやり直す必要があります。

お持ちですか?賢い再インストール後に再適用する必要がある何年に何が変更されたのか、どうすればわかりますか?

私はどのシステムファイルが私が手動で編集したかを確認するか(可能であれば)、私のインストールと通常のインストールの間の特定のフォルダを比較することを検討しました。しかし、私が編集しなければならなかったほとんどのファイルを確実に覚えておらず、どんなファイル/ディレクトリが重要であるか、安全に無視できるかなどがわかるほど、Linuxについて十分に知りません。

編集:明確にするためにドットファイルについて話しているわけではありません。バージョン管理に置くことです。

編集2:問題のディストリビューションはi3wmバージョンのManjaroです。

答え1

pacmanArchとその派生を使用してパッケージデータベースを照会できます。

pacman -Qii | awk '/^MODIFIED/ { print $2 }'

変更されたすべてのファイルのリストが表示されます。実際の修正を見るには、そのファイルをそのパッケージのソースと比較する必要がありますが、私はそれまで気にしません。代わりに、結果リストのすべてのファイルをバックアップし、新しくインストールされdiffたファイルをバックアップします。

答え2

同じパッケージを使用して、同じ展開/バージョンを新しくインストールします(仮想マシンなど)。チェックサムなどを比較するのは簡単ではありません。

答え3

すでに提案したように、新規インストールを作成し、すべてのファイル(一時ファイルを除く)のハッシュを生成し、/tmpハッシュ/var/tmpを比較できます。ただし、IMHOは、システムが2〜3台インストールされているかのように多くの情報を提供しません。数年前に、新しいバージョンのパッケージのために変更された(ほぼ)すべてのファイルを見ることができます。構成ファイルに関しては、そのファイルをバックアップし、新しいインストールから復元したり、diff変更を表示するために使用できます。

後で実際に変更を追跡するには、audit(ほぼ)すべてのLinuxディストリビューションに存在するサブシステムを使用できます。

答え4

現在:

  1. USBから起動し、別のディスクへのシステムのバックアップ
  2. 現在使用しているバージョンと同じバージョンを使用してオペレーティングシステムを再インストールしてください。
  3. すべてのソフトウェアを再インストールし、現在使用しているのと同じバージョンに更新します(ただし、設定は変更しないでください)。
  4. USBで再起動し、古いシステムと新しいシステムをどこかにインストールし、ファイル間の違いを比較します(例sudo diff -Naur /mnt/old /mnt/new:)。

findを創造的に使用することも役に立ちます。
たとえば、次のようになります。sudo find /mnt/old -xdev -mtime -100過去100日間に変更されたすべてのファイルを表示します。

私はこれをお勧めしません正確にそうでなければ、あなたが得る情報が途方もないだろうと述べました。必要に応じていくつかの調整を行う必要があります。 (例:特定のディレクトリのみを比較)findあなたを助けます。

未来のために:

  • 追加バージョン管理(例etckeeper:)
  • より多くのバックアップを作成し(例rsync:)、頻繁に比較します(例diff:)
  • COWを含むファイルシステム(例:btrfs)

関連情報