はじめに
社内で扱うファイルやドキュメントは、業務の生命線とも言えます。誤って削除したり、PCの故障で消えてしまった場合、業務に大きな支障が出てしまいます。
そのため「バックアップの自動化」は欠かせない仕組みです。
本記事では、Pythonを使って社内ファイルを日次でクラウドに自動保存する仕組みを構築する方法を解説します。
初心者でも導入しやすいように、サンプルコードも交えて紹介します。
Pythonでバックアップ自動化をするメリット
- ヒューマンエラー防止
手作業のバックアップは忘れやすいですが、自動化すれば確実に保存されます。 - コスト削減
高価なバックアップツールを導入しなくても、Pythonとクラウドサービスの無料枠で対応可能です。 - 柔軟なカスタマイズ
保存先をGoogle Drive、Dropbox、OneDriveなど自由に変更できます。
バックアップ自動化の仕組み
今回の流れは以下の通りです。
- 対象フォルダを指定(例:
C:/share
) - zipファイルに圧縮(バックアップサイズ削減&転送効率化)
- クラウドストレージにアップロード
- タスクスケジューラ(Windows)やcron(Linux)で日次実行
サンプルコード(Google Driveに保存する例)
以下は、pydrive2
ライブラリを利用して、日次バックアップをGoogle Driveにアップロードするサンプルです。
import os
import shutil
import datetime
from pydrive2.auth import GoogleAuth
from pydrive2.drive import GoogleDrive
# ===== 設定 =====
BACKUP_TARGET = "C:/share" # バックアップ対象フォルダ
BACKUP_DIR = "C:/backup" # 一時保存フォルダ
ZIP_NAME = f"backup_{datetime.date.today()}.zip"
# ===== バックアップ処理 =====
def create_backup():
if not os.path.exists(BACKUP_DIR):
os.makedirs(BACKUP_DIR)
zip_path = os.path.join(BACKUP_DIR, ZIP_NAME)
shutil.make_archive(zip_path.replace(".zip", ""), "zip", BACKUP_TARGET)
return zip_path
# ===== Google Drive認証 =====
def authenticate_drive():
gauth = GoogleAuth()
gauth.LocalWebserverAuth() # 初回のみブラウザ認証
return GoogleDrive(gauth)
# ===== アップロード処理 =====
def upload_to_drive(file_path, drive):
file = drive.CreateFile({'title': os.path.basename(file_path)})
file.SetContentFile(file_path)
file.Upload()
print(f"{file_path} をGoogle Driveにアップロードしました。")
if __name__ == "__main__":
backup_file = create_backup()
drive = authenticate_drive()
upload_to_drive(backup_file, drive)
自動実行の設定方法
Windowsの場合(タスクスケジューラ)
- タスクスケジューラを開く
- 基本タスクの作成 → 毎日実行を選択
- プログラム/スクリプトに
python.exe
を指定 - 引数にスクリプトファイル(例:
backup.py
)を指定
Linuxの場合(cron)
ターミナルで以下を実行し、毎日深夜2時に実行する設定を追加します。
crontab -e
0 2 * * * /usr/bin/python3 /home/user/backup.py
応用編:保存先を変更する
- Dropbox →
dropbox-sdk-python
を利用 - OneDrive →
msal
+ Microsoft Graph API を利用 - AWS S3 →
boto3
を利用
必要に応じて保存先を切り替えられるのもPython自動化の強みです。
まとめ
- Pythonを使えば、社内ファイルを日次でクラウドに自動保存できる
pydrive2
を利用してGoogle Driveにアップロードする例を紹介- タスクスケジューラやcronと組み合わせれば、完全自動化が可能
バックアップを自動化すれば「安心して仕事に集中できる環境」が作れます。ぜひ導入してみてください!