kanekunのメモ

AIが作ったプログラムのバックアップ

backup(Gemini)

#!/bin/bash

# バックアップ対象ディレクト
SRC_DIR=/path/to/source_directory

# バックアップ先ディレクト
DEST_DIR=/path/to/destination_directory

# 差分バックアップ用の昨日の日付を取得
YESTERDAY=$(date -d "yesterday" +%F)

# 曜日を取得
WEEKDAY=$(date +%u)

# ログファイル
LOGFILE=/var/log/backup.log

# ログ関数の定義
log() {
    echo "$(date) $1" >> $LOGFILE
}

# フルバックアップを実行
full_backup() {
    log "Performing full backup..."
    zip -r $DEST_DIR/full_backup_$(date +%Y%m%d).zip $SRC_DIR
    log "Full backup completed."
}

# 差分バックアップを実行
differential_backup() {
    log "Performing differential backup..."
    find $SRC_DIR -mtime -1 -newer $YESTERDAY -type f -print0 | zip -0r $DEST_DIR/diff_backup_$(date +%Y%m%d).zip -@
    log "Differential backup completed."
}

# メイン処理
case $WEEKDAY in
    1|2|3|4|5|7) # 平日および土曜日
        differential_backup
        ;;
    6) # 日曜日
        full_backup
        ;;
esac