Sahara3のAI副業

AI副業でどこまでいけるのか?

AI副業:いざという時に備えてバックアップをしたい。

「さはら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)

Amazon アフィリエイト


解説

  • 必要なパッケージをインポートする
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着物美女

AI着物美女

Instagram

良かったらInstagramのフォローをお願いします。

https://www.instagram.com/ai_kimono_bijo/

非アダルトで運営しておりますので、職場でも安心して堪能いただけます。