複数のコンピューターを使用するすべての人は、遅かれ早かれそれらの間でデータ同期が必要になったと思います。
私の場合、データは次のとおりでした:ノート(美しいツリーベースのZIMエディターで作成)、メッセンジャーログ( Pidginは優れたログ形式を使用しており、同期に非常に便利です)、プログラム設定:))、および小さくてあまりbashスクリプトではなく、数年にわたって蓄積されました。
このガイドでは、予期しない状況でこのデータを同期、保護、復元する問題をどのように解決したかを説明します。 もちろん、これらのソリューションは普遍的ではなく、最終的なものではありません(数年にわたって開発され、おそらく何度も変更されます)が、一部は完全に原始的ですが、現時点ではすべての要件を満たし、私の意見では出版に値する。 ここで、誰かが少なくとも自分にとって役立つ何かを見つけてくれることを願っています! :)
それでは始めましょう。 記事をいくつかの部分に分けました。
1.問題の声明
2.重要なファイルのバージョン管理
3.データ保護
4. Windows用のポータブルプログラムをインストールする
5.データのバックアップ
6.すべてのアクションを1つにまとめる
問題の声明
むかしむかし、 savesという非常に思いやりのある名前のフォルダーを作成し、そこに多かれ少なかれ重要なファイルを入れ始めました。 文書の場合、これは十分に便利でしたが、ファイルが特定の場所(たとえば、プログラムの構成ファイル)にある必要がある場合、そのコピーがそこに到達しましたが、それは完全に良くありませんでした。
Linuxとそのファイルシステムを理解した後、そのような構成ファイルはコピーの場所に移動し、このファイルへのソフトリンクが適切な場所に配置されました。
またそこに着いた:
* keepass形式のパスワードファイル(プログラムのLinuxバージョン-KeePassX )
* .vcf形式のアドレス帳
* ZIMエディターのメモ
* Bash(およびその他)スクリプト
*そして、他のすべての小さなものもたくさん
2台のコンピューター(作業用と自宅用のラップトップ、両方にDebian Etchがインストールされています)があった後、両方のコンピューターにこのフォルダーの正確なコピーを作成し、変更を同期する必要がありました。
時間が経つにつれて、Nokia N800タブレットとWindowsコンピューターがリストに追加されましたが、これは週に1回アクセスしますが、Firefox用の同じグリースモンキースクリプトのセットを他と同じにする必要性を排除するものではありません。
重要なファイルのバージョン管理
私は単純な同期ではsavesフォルダーには十分ではないと判断しましたが、プログラマーが大好きなバージョン管理システムを使用する方が良いでしょう:)
長い比較の後、悪名高いCanonicalがサポートする分散バージョン管理システムであるBazaarが選択されました。
彼女のために、彼女は私が必要な一連のアクションを実行するスクリプトを作成する必要がありました:新しいファイルをリポジトリに追加し、新しい変更のコメントを入力することを提案し(もちろんそうであれば)、親リポジトリと変更をマージします(N800の場合はコンピュータ、コンピュータの場合)フラッシュドライブですが、フラッシュドライブには親リポジトリがありません)。
現在、私は常にすべてのコンピューターに同じ保存フォルダーを保持しており、何らかの不具合が発生した場合は、以前のバージョンのファイルに戻ることができます。
少し追加:
多くの場合、プログラム構成ファイルには、実際の構成に加えて、頻繁に変化するあらゆる種類のパラメーターが含まれています。 たとえば、Firefoxは、ブックマークを使用するたびにブックマークを変更するブックマークファイルでブックマークを使用する最後の時間も保存します。 このようなデータには同期が不要であることは明らかなので、ファイルから削除する特別なprepare_savesスクリプトと、これを行う開発者の母親を作成しました:)。
データ保護
savesフォルダーには、フラッシュドライブの紛失について間違った手に渡りたくない十分な量のデータが既に含まれているため、これを保護することを検討するときです。
TrueCryptプログラムについて学んだhabrに感謝します。 それを使用して、NTFSファイルシステムを備えたフラッシュドライブに200 mbファイルコンテナーを作成し(NTFS、次のセクションを参照)、 savesフォルダーをそこに移動しました。 この場合、暗号化の目的はFSBからの保護ではなく、単にフラッシュドライブを間違った手に渡さないようにするため、パスワード保護で十分でした。
うーん...このような重要な質問ですが、これ以上言うことはありません:)
Windows用のポータブルプログラムをインストールする
時々Windowsコンピューターを使用しなければならないことがあるので、 PortableApps.org Webサイトは私にとって本当の発見になりました。 お気に入りのFirefoxとPidgin、および他のいくつかのプログラムは、フラッシュドライブの保護された部分にしっかりと置き換わりました。
パーティションにはNTFSファイルシステムがあるため、構成ファイルをsavesフォルダー内の対応するファイルへのリンクに置き換えても問題なくトリックを繰り返しました。
データのバックアップ
そのような航空機が作成された後、路上でそれを失うことは再び残念です。 バックアップ(および同期)のために、古き良きUnisonが接続され、正しく構成されていればすべてを実行できます。
彼のために3つのプロファイルが作成されました。
*フラッシュドライブの保護されていない部分のすべてのデータのバックアップ(暗号化されたファイルコンテナーを除く)
*すべての保護されたデータのバックアップ( 保存フォルダーを除く)
* Pidginログの同期
Unisonは双方向の同期を行うため、ファイルをUSBフラッシュドライブに書き込むために、まずバックアップディレクトリに書き込み(逆説的に聞こえます)、必要に応じて同期手順を開始します。
すべてのアクションを1つにまとめる
今、最も簡単なことは残っています-すべてのステップを一緒に組み合わせるスクリプトを書くことです。 そのアルゴリズムは非常に簡単です。
1.フラッシュドライブの保護されたセクションをマウントする
2. Pidginログの同期
3.フラッシュドライブの保護されていない部分を同期する
4.フラッシュドライブの保護された部分を同期する
5.フラッシュドライブに保存するためにprepare_savesを実行します
6.変更をコミットしてフラッシュドライブに保存する
7.ディスクに保存するためにprepare_savesを実行します。
8.変更をディスクに保存し、USBフラッシュドライブに送信します。
9.フラッシュドライブの保護されたセクションをアンマウントします
USBフラッシュドライブをコンピューターに接続するとき、1つのタブをクリックし、保護されたコンテナーにアクセスするためのパスワードを入力し、必要に応じて変更に関するコメントを入力します...他の人が考えていないことに多くの時間を費やしたことを理解してください:)
誰かが私のスクリプトのソースコードを見たり、質問をしたい場合は-ようこそ! 私は答えて助けてくれるだけで幸せです:)