8章ファイルシステムのバックアップ

ファイルシステムのバックアップを作成するしくみは多数考えられています。この中にはDropboxやBoxあるいはCarboniteなどのアプリケーションもあり、AppleのTime MachineやSeagateなどのハードウェアベースのソリューションもあり、NAS(network-attached storage)製品も考えられます。消費者向けのツールのほとんどでは、キーとなる機能が自動化されており、ポリシーやコンテンツを管理するためのアプリケーションまたはWebサイトが用意されています。一方、我々のような開発者にとっては本当に必要な機能が提供されていないということもよくあります。Goの標準ライブラリ(特に、ioutilosなどのパッケージ)にはバックアップを行うために必要なすべてのものがそろっており、我々が必要としている機能だけを実現できます。

本書で紹介する最後のプロジェクトとして、我々のソースコードをバックアップするプログラムを作成します。指定されたフォルダー内のファイルを定期的に監視し、変更を加えるたびにアーカイブとしてスナップショットを作成します。ここでの変更とは、既存のファイルへの上書き保存だけではなくファイルやフォルダーの新規作成あるいは削除も含まれます。以前のどの時点にも戻れるようにするのが目標です。

特に、この章では以下の点について学びます。

  • 複数のパッケージやコマンドラインツールを含むプロジェクトの構成
  • シンプルなデータを永続化し、ツールの実行のたびに参照できるようにするための現実的なアプローチ
  • osパッケージを使ったファイルシステムとのインタラクション
  • コードを実行し続け、Ctrl+Cが押されたら終了するための方法

Get Go言語によるWebアプリケーション開発 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.