「さはら3」です。
AI副業でどこまでいけるのか?をテーマに頑張っていきたいと思います。
頭の体操
- 1か所だけ異なる漢字が入っています。(解答は一番最後に掲載)
本編
皆様、日ごろからバックアップは保存していますでしょうか?
バックアップとは、簡単にいうと必要なデータを別の場所・サーバ等にコピーをする事です。
重要なのは「別の場所」という事。
同じ場所にコピーしても実質的なバックアップにはなりませんので、ご注意ください。
スクリプト
さて、出来上がったスクリプトはこちらです。
import os import shutil import datetime def backup_files(source_directory, backup_directory, keep_days=30): """ ファイルのバックアップを取る関数。 Parameters: - source_directory (str): バックアップするファイルのソースディレクトリ。 - backup_directory (str): バックアップを保存するディレクトリ。 - keep_days (int): 保存するバックアップの日数。この期間を超えると、古いバックアップは削除されます。 """ # 現在の日付を取得 today = datetime.datetime.now().strftime('%Y%m%d') # 今日のバックアップディレクトリのパスを作成 today_backup_directory = os.path.join(backup_directory, today) # 今日のバックアップディレクトリが存在しない場合、ディレクトリを作成 if not os.path.exists(today_backup_directory): os.makedirs(today_backup_directory) # ソースディレクトリのファイルをバックアップディレクトリにコピー for item in os.listdir(source_directory): source_item = os.path.join(source_directory, item) backup_item = os.path.join(today_backup_directory, item) if os.path.isdir(source_item): shutil.copytree(source_item, backup_item) else: shutil.copy2(source_item, backup_item) # 古いバックアップを削除 for item in os.listdir(backup_directory): backup_date = datetime.datetime.strptime(item, '%Y%m%d') if (datetime.datetime.now() - backup_date).days > keep_days: shutil.rmtree(os.path.join(backup_directory, item)) if __name__ == "__main__": SOURCE_DIRECTORY = r"C:\temp\Backup_test" # バックアップするソースディレクトリのパスを指定 BACKUP_DIRECTORY = r"C:\Users\any\OneDrive\Backup_test" # バックアップを保存するディレクトリのパスを指定 KEEP_DAYS = 7 # 保存するバックアップの日数を指定 backup_files(SOURCE_DIRECTORY, BACKUP_DIRECTORY, KEEP_DAYS)
解説
- 必要なパッケージをインポートする
import os import shutil import datetime
- backup_files関数を作成し、バックアップの処理を行う
def backup_files(source_directory, backup_directory, keep_days=30): """ ファイルのバックアップを取る関数。 Parameters: - source_directory (str): バックアップするファイルのソースディレクトリ。 - backup_directory (str): バックアップを保存するディレクトリ。 - keep_days (int): 保存するバックアップの日数。この期間を超えると、古いバックアップは削除されます。 """ # 現在の日付を取得 today = datetime.datetime.now().strftime('%Y%m%d') # 今日のバックアップディレクトリのパスを作成 today_backup_directory = os.path.join(backup_directory, today) # 今日のバックアップディレクトリが存在しない場合、ディレクトリを作成 if not os.path.exists(today_backup_directory): os.makedirs(today_backup_directory) # ソースディレクトリのファイルをバックアップディレクトリにコピー for item in os.listdir(source_directory): source_item = os.path.join(source_directory, item) backup_item = os.path.join(today_backup_directory, item) if os.path.isdir(source_item): shutil.copytree(source_item, backup_item) else: shutil.copy2(source_item, backup_item) # 古いバックアップを削除 for item in os.listdir(backup_directory): backup_date = datetime.datetime.strptime(item, '%Y%m%d') if (datetime.datetime.now() - backup_date).days > keep_days: shutil.rmtree(os.path.join(backup_directory, item))
- メイン関数、バックアップ元、バックアップ先のフォルダーを指定、バックアップを残す日数を指定する。
if __name__ == "__main__": SOURCE_DIRECTORY = r"C:\temp\Backup_test" # バックアップするソースディレクトリのパスを指定 BACKUP_DIRECTORY = r"C:\Users\any\OneDrive\Backup_test" # バックアップを保存するディレクトリのパスを指定 KEEP_DAYS = 7 # 保存するバックアップの日数を指定 backup_files(SOURCE_DIRECTORY, BACKUP_DIRECTORY, KEEP_DAYS)
まとめ
いかがでしたでしょうか?
結構簡単な処理でバックアップを作成してくれました。
こんな感じで、日付のフォルダーを作成して、データをコピーくれました。
いざという時に備えて、バックアップを取得しておきましょう。
AI関連は日進月歩、日々之精進でございます。
最後まで読んで頂きありがとうございました。
AIさはら
頭の体操:解答
- わかりましたか?
本日のAI着物美女
良かったらInstagramのフォローをお願いします。
https://www.instagram.com/ai_kimono_bijo/
非アダルトで運営しておりますので、職場でも安心して堪能いただけます。