Pythonでフォルダのバックアップを自動化!初心者でもできる実践方法

Pythonでフォルダのバックアップを自動化!初心者でもできる実践方法 python

大切なデータを手作業でコピーしていませんか?Pythonを使えば「フォルダのバックアップを自動化」でき、作業効率も安全性も大幅に向上します。本記事では、初心者にもわかりやすく手順やコード例を解説します。

Pythonでフォルダバックアップを自動化するメリット

まず、Pythonでフォルダのバックアップを自動化するメリットを確認しましょう。手作業でコピーすると、忘れたり時間がかかったりするリスクがあります。しかし、自動化すれば定期的に確実にコピーできます。さらに、必要に応じて日付付きで保存する仕組みも作れるため、過去のファイルを残しておけます。このように、自動化は作業の手間を減らし、ミスを防ぐ効果があります。

必要なライブラリと環境準備

バックアップにはPython標準ライブラリのshutilosが使えます。これらはインストール不要で最初から利用可能です。特別な環境構築をしなくてもすぐに試せるのが利点です。加えて、日時を扱うためにdatetimeモジュールを使うことも多いです。これで、日付ごとにフォルダを作って保存できます。

基本的なバックアップスクリプト

まずはシンプルなコードから始めましょう。以下の例は、指定したフォルダを別の場所にコピーするスクリプトです。

import shutil
import os
import datetime

# バックアップ元と保存先
source = "C:/data"
target_dir = "D:/backup"

# 日付付きのフォルダ名を作成
today = datetime.date.today().strftime("%Y%m%d")
target = os.path.join(target_dir, f"backup_{today}")

# コピー処理
shutil.copytree(source, target)
print("バックアップ完了:", target)

このコードを実行すると、指定したフォルダが日付付きでコピーされます。実行するたびに新しいバックアップが作成されるため、履歴管理も簡単です。

定期実行の設定方法

Windowsでのタスクスケジューラ

スクリプトを作成したら、Windowsの「タスクスケジューラ」で定期実行できます。例えば毎日深夜にバックアップを走らせれば、常に最新のコピーが残ります。実行間隔も自由に設定できるため、業務環境でも安心して利用できます。

Linux/macOSでのcron

LinuxやmacOSでは「cron」を使って定期的にスクリプトを実行できます。crontab -eで設定し、例えば毎日午前1時に実行する場合は以下のように記述します。

0 1 * * * python3 /home/user/backup.py

このように、どのOSでもバックアップを自動化する仕組みを簡単に作れます。

応用テクニック

古いバックアップを自動削除する

バックアップが増えすぎるとストレージを圧迫します。そのため、古いバックアップを一定数残して削除する仕組みを入れるのがおすすめです。

import os
import shutil

backup_dir = "D:/backup"
backups = sorted(os.listdir(backup_dir))

# 最新5つだけ残す
while len(backups) > 5:
    old = backups.pop(0)
    shutil.rmtree(os.path.join(backup_dir, old))
    print("削除:", old)

このコードを組み込めば、常に最新のバックアップだけが維持されます。

圧縮して保存する

フォルダをそのままコピーすると容量が大きくなりがちです。その場合は、shutilでzip圧縮する方法もあります。

shutil.make_archive("backup_archive", "zip", source)

こうすると1つのzipファイルにまとめられるため、転送や保存が楽になります。

よくあるエラーと対処法

  • PermissionError: コピー先のフォルダに権限がない場合に発生します。管理者権限で実行するか保存先を変更してください。
  • FileExistsError: すでに同じ名前のフォルダがある場合に起きます。日付付きフォルダ名を使うと解決できます。
  • 容量不足: バックアップ先のディスク容量を常に確認しましょう。不要なバックアップは削除してください。

プログラミング初心者におすすめのサービス

「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、

テックアカデミーがおすすめです。

AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。

さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。

テックアカデミー無料相談

また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富な講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。

書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。

また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験や知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。

こちらのリンクから詳細をチェックしてみてください。

▶ ココナラを活用する

まとめ

Pythonでフォルダのバックアップを自動化すれば、データを効率的かつ確実に守れます。基本のコピーから応用まで取り入れて、安全なバックアップ環境を構築しましょう。

以下のリンクから、

SESの組込みシステムから色々な不満を持ち、自社WEBサービスへ転職した実体験の記事がありますので、是非読んでみてください。とても喜びます。

SESの組込みシステムから自社WEBサービスのエンジニアに転職した話

参考リンク: shutil — 高水準のファイル操作, datetime — 日付と時間

コメント

タイトルとURLをコピーしました