初めて、高校のコンピューターでハードドライブが乱雑になる問題に遭遇しました。 次に、Evernoteを使用してすべてのドキュメントを構造化し、必要なタグを付けて、すべてのドキュメントをこの素晴らしいソフトウェアに転送することで問題を解決しました。 他のすべてのファイルは両方ともヒープ上にあり、嘘をつき続けました。
uniにはさらに多くのファイルがあり、自宅のコンピューターの数は3個に増え、バックアップを作成し始めました。 これまでのところ、コンピューター上の現在のフォルダーのコピーを作成するだけで、実際にはその構造に煩わされることはありません。 トレーニングの最後に、膨大な量のドキュメントを外部サーバーに保存するかどうかを考えました。 少し考えた後、私はこれをしない方が良いと判断し、Evernoteの針を外すことにしました。 以前は、コンピューターにファイルを保存する構造を考えていたため、検索しなくても必要な情報を簡単に見つけることができました。 興味のあるトピックごとに、/ home / usernameフォルダーにフォルダーを作成しました。 これをカテゴリと呼びます。 各カテゴリ内にはプロジェクトサブフォルダーがあり、miscフォルダーはほぼすべてのフォルダーで必須でした。そのため、ファイルマネージャーでは、ランダムに積み上げられた非構造化ファイルのヒープが表示されません。 たとえば、Bioinformatics / Aligner、Development / Projects / GameOfLifeというフォルダーがありました。 ファイルとフォルダーの名前付けには明確なルールがありました(アンダースコア、camelCase、大文字のフォルダー、小さいファイルのフォルダー)。 すべてがうまくいくように見えましたが、私は怠け者であり、必要なフォルダにファイルを常に美しくアップロードしなかったため、最終的に構造が乱雑になりました。 私は別のものを試してみることにしました...
localhostでmediawikiを上げて、2台のメインコンピューター間で同期することにしました(1台は自宅に固定され、もう1台は常に私と一緒です)。 必要なファイルが保存されているすべてのフォルダーの同期(およびバックアップも)は、rsyncを使用して行われました。 帰宅したときに、iCameHome.shスクリプトを実行しました。このスクリプトは、すべての変更をホームコンピューターにアップロードしました。これは同時にバックアップサーバーでもありました(現在はバックアップサーバーでもあります)。 仕事を辞めると、iWentOut.shを開始し、変更を反対方向にアップロードしました。 rsyncスクリプトに含めたコンピューター上の他のフォルダーと同様に、ホームwikiは簡単かつ自然に同期され、すべてがうまくいくように見えました。 しかし、記事に記載されているカテゴリにかかわらず、適切な記事を見つけるのに時間がかかるため、Wikipediaの記入が少ないほど気づき始めました。 さらに、私はこれをしたくない。 mediawikiでの検索が好きではありませんでした。たぶん読んだり終了したりしませんでした。 しかし、基本的にここに。
何に来たの? 新しいファイル構造化システムに移行するための私の計画は、2つの部分で構成されていました。
- 家庭用固定コンピューターでのgitサーバーの構成
- 仮想化
最初のポイントは非常に簡単です。 git-coreを取得して配置し、ラップトップのsshキーを使用可能なもののリストに追加し、sshパスワードアクセスを無効にして、外部の固定コンピューターのsshポートを開きます。 特に妄想的な人格は、ポートノッキングを設定することが推奨されます。 その後、同期する必要のある各フォルダーに対して、gitリポジトリーを作成し、変更がいつ、どこで行われたかに応じて、固定コンピューターとラップトップコンピューターの両方からコミットします。
2番目のポイントは、ワークスペースの仮想化です。 最初に、典型的な仮想マシンを作成します。mysql+ IDEで構成された仮想マシン、安全なWebサーフィン用の仮想マシン、特定のプロジェクト用の仮想マシンです。 仮想マシンが頭に浮かんだ後、そのフルバックアップが行われます。 次に、上記の方法でプロジェクトフォルダーのみがgitを介して同期されます。 すべての作業は仮想マシンで行われます。ホストには、Skype、Minecraft、トレントダウンロード、VLCプレーヤーがまだあります。
このソリューションの利点は何ですか?
- 最小ホスト要件(設定に関して)。 virtualboxとgitのみが必要です。 したがって、どのシステムで動作するかは問題ではなく、簡単に実験できます。
- gitサーバーは1つのコマンドで発生します。他のすべての設定も、上で書いたように非常に簡単です。
- すべてのフォルダー(必要なリポジトリーにgit pullを追加することによって)と、フォルダーの内側からプルすることによって個々のプロジェクトフォルダーの両方を同期できます。 rsyncでは、一般的なスクリプトに移動してコマンドをコピーする必要があるため、ここではより困難です。なぜなら、それは長く、ファイルへのすべてのパスを常に覚えているからです。
- リポジトリを同期できない場合は、ファイルを安全に変更し、追加し、ローカルでコミットしてからマージすることができます
- 履歴があり、ファイルの削除または変更の損失が記録されます。 ファイルの変更を追跡できます。
短所?
- リポジトリの歴史は大きく膨らむかもしれませんが、これまでのところ何も言えませんが、そのようなシステムに切り替えたのはごく最近のことです。
- ファイルを電話/タブレットと同期できないことですが、個人的にはこれは必要ありません。 私は、携帯電話/タブレットでは、デスクトップコンピューター上に既に存在するファイルのみを保存する必要があるという結論に達しました。そのため、モバイルデバイスでファイルを失うのを防ぎました。
デバイス間のバックアップとデータ同期の問題を解決するコメントを喜んで聞きます。