恋もデータもバックアップ:失わないための戦略

ごえ
2024-03-19
2024-03-19

こんにちは。見習いエンジニアのごえです。

インフラの運用を担当していると、ときおりお客様から以下のようなお問い合わせをいただくことがあります。

「Webサイトのデータを誤って削除してしまったが、バックアップを取っていなかった。
何か復元する方法はないか?」

うっかりWebサイトなどのデータが消えてしまったというトラブルです。
残念ながら、弊社の契約内容によってはお客様ご自身でバックアップ設定を行っていただいていない場合は復元することができません。

データが飛んだ人のイラスト
このように、Webサイトのみに関わらずちょっとした操作ミスで大切なデータを失うことがあります。突然原因不明のファイル損傷が発生したり、誤って新しいデータに古いデータを上書きしてしまったり、気づいた時にはもう取り戻すことができません。

データが損失するようなケースにあるのが「バックアップが必要だと思っていなかった」ということです。

「今日ちゃんとデータがあるから明日も大丈夫だろう」と思ってしまうときこそ、
データ損失を警戒した方がいいのだと感じています。

「失ってから気づく大切さ」

そう、恋と同じです。
いるのが当たり前、喧嘩してないから大丈夫。そう思っているとある日突然大切な人を失ってしまうことがあるのです。私もありました。中学3年生の冬、当時お付き合.......(略)

失恋のイラスト「ふられた男性」 | かわいいフリー素材集 いらすとや
コミュニケーションによって関係を深め、互いの価値を認識し合うことが重要です。感謝の気持ちを表現し、相手の意見を尊重することで、関係はより強固になります。
あたりまえをあたりまえと思わないことが第一歩です。

結局のところ、恋愛もデータも、それぞれにおいて大切なものを失わないために必要なことがあります。恋愛ではコミュニケーションが、データでは定期的なバックアップが、それぞれを守ってくれるのです。

というわけで、自動で特定のファイルをバックアップしてくれるプログラムをご用意
(chatGPTにPythonでつくらせたものを一部改変)

import os
import shutil
import time

# バックアップするファイルのパス
source_file = 'Desktop/text.txt'

# バックアップを保存するディレクトリのパス
backup_dir = 'Desktop'

# バックアップ間のインターバル(秒)
backup_interval = 3600 # 1時間

def backup_file(source, backup):
    # バックアップファイルの名前を作成(現在のタイムスタンプを含む)
    timestamp = time.strftime('%Y%m%d%H%M%S')
    backup_filename = f'{timestamp}_{os.path.basename(source)}'
    backup_path = os.path.join(backup, backup_filename)

    # ファイルをバックアップディレクトリにコピー
    shutil.copy2(source, backup_path)
    print(f'Backup created: {backup_path}')

if __name__ == '__main__':
    while True:
        backup_file(source_file, backup_dir)
        time.sleep(backup_interval)

上記のコードを実行すると、特定のファイルを指定した時間毎に複製してくれます。
もしご自身で実行する場合は自己責任でお願いいたします。
ちなみに私が実行したときは上手くバックアップ取れました。

これで大事なデータも恋もばっちり守れますね!

これを機に身の回りのバックアップの設定を見直してみてはいかがでしょうか。
お読みいただきありがとうございました。