Резервное Копирование и Синхронизация AWS S3
Создает резервные копии и синхронизирует локальные файлы с AWS S3. Загружает в S3 buckets с помощью AWS CLI.
Опубликовано: 10.05.2024
Код
#!/bin/bash
# AWS S3 Backup and Sync Script
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage: $0 <local_path> <s3_bucket> [s3_path]"
echo "Example: $0 /backup/files my-backup-bucket backups/"
exit 1
fi
LOCAL_PATH="$1"
S3_BUCKET="$2"
S3_PATH="${3:-}"
if [ ! -d "$LOCAL_PATH" ]; then
echo "Error: Local path not found: $LOCAL_PATH"
exit 1
fi
if ! command -v aws &> /dev/null; then
echo "Error: AWS CLI not installed"
echo "Install: pip install awscli"
exit 1
fi
echo "======================================"
echo " AWS S3 BACKUP SYNC"
echo "======================================"
echo "Local Path: $LOCAL_PATH"
echo "S3 Bucket: s3://$S3_BUCKET/$S3_PATH"
echo "Started: $(date)"
echo ""
# Sync files
echo "Syncing files to S3..."
aws s3 sync "$LOCAL_PATH" "s3://$S3_BUCKET/$S3_PATH" --delete
if [ $? -eq 0 ]; then
echo ""
echo "✓ Sync completed successfully!"
echo "Completed: $(date)"
else
echo ""
echo "✗ Sync failed!"
exit 1
fi
Использование
chmod +x s3_backup.sh
./s3_backup.sh /backup/files my-backup-bucket backups/