(oneechanblog) – シェルスクリプトは、特定のジョブを実行するためのコマンドのコレクションです。 MySQLは、Linuxシステムで広く使用されているリレーショナルデータベース管理システムです。 Amazon S3は、AmazonWebServicesが提供するクラウドストレージデバイスです。 システム管理者は、データベースを定期的にバックアップし、AmazonS3などのリモートの場所に保存することをお勧めします。
このチュートリアルには、MySQLデータベースのバックアップを作成してAmazonS3バケットにアップロードするシェルスクリプトが含まれています。 このシェルスクリプトを使用して、MariaDBまたはAmazon Aurora(MySQL互換)データベースをバックアップすることもできます。
MySQLデータベースをS3にバックアップする
以下のステップバイステップのチュートリアルを使用して、MySQLデータベースをバックアップし、AmazonS3バケットにアップロードします。
1.AWSCLIをインストールします
このスクリプトを使用するには、システムにAWSCLIがインストールされている必要があります。
2.S3バケットを作成します
AWS Management Consoleにログインし、新しいs3バケットを作成します。
または、AWSCLIを介してs3バケットを作成することもできます。 コマンドは次のようになります。
aws s3api create-bucket –bucket s3-bucket-name –region us-east-1
バケット名とリージョンを置き換えるだけです。
3.MySQLデータベースをS3にバックアップするシェルスクリプト
以下のシェルスクリプトをdb-backup.shのようなファイルにコピーします。 このスクリプトは mysqldump データベースのバックアップを作成するコマンド。 次に、 gzip バックアップファイルをアーカイブし、最後に使用するコマンド aws バックアップファイルをAmazonS3バケットにアップロードするコマンド。
次のようなファイルを作成します /backup/scripts/s3-backup-mysql.sh お気に入りのテキストエディタを編集します。 次に、以下のコンテンツを追加します。
- #!/ usr / bin / env bash
- #################################################### ######################
- #################################################### ######################
- ###
- ####作成者:Rahul Kumar
- #####ウェブサイト:https://tecadmin.net
- ####
- #################################################### ######################
- #################################################### ######################
- #フォルダ名の形式を日付で設定します(2022-05-28)
- DATE_FORMAT=$((日にち +”%Y-%m-%d”)。
- #MySQLサーバーの資格情報
- MYSQL_HOST=「ローカルホスト」
- MYSQL_PORT=「3306」
- MYSQL_USER=”ユーザー”
- MYSQL_PASSWORD=”パスワード”
- #ローカルバックアップディレクトリへのパス
- LOCAL_BACKUP_DIR=「/backup/dbbackup」
- #s3バケット名とディレクトリパスを設定します
- S3_BUCKET_NAME=「s3-バケット名」
- S3_BUCKET_PATH=「backups/db-backup」
- #ローカルバックアップファイルを保存する日数
- BACKUP_RETAIN_DAYS=30
- #単一のデータベースまたはスペースで区切られたデータベースの名前を使用する
- データベース=「DB1DB2DB3」
- この線より下は変更しないでください
- mkdir -p ${LOCAL_BACKUP_DIR/${DATE_FORMAT
- LOCAL_DIR=${LOCAL_BACKUP_DIR/${DATE_FORMAT
- REMOTE_DIR=s3://${S3_BUCKET_NAME/${S3_BUCKET_PATH
- 為に db の $データベース; 行う
- mysqldump \
- -h ${MYSQL_HOST \
- -P ${MYSQL_PORT \
- -u ${MYSQL_USER \
- -p${MYSQL_PASSWORD \
- -独身-取引 ${db | gzip -9 >> ${LOCAL_DIR/${db-${DATE_FORMAT.sql.gz
- aws s3 cp ${LOCAL_DIR/${db-${DATE_FORMAT.sql.gz ${REMOTE_DIR/${DATE_FORMAT/
- 終わり
- DBDELDATE=`日にち +「$DATE_FORMAT」 -日にち=「$BACKUP_RETAIN_DAYS日前」`
- もしも [ ! -z $LOCAL_BACKUP_DIR ]; それから
- CD ${LOCAL_BACKUP_DIR
- もしも [ ! -z $DBDELDATE ] && [ -d $DBDELDATE ]; それから
- rm -rf ${DBDELDATE
- fi
- fi
- ##スクリプトはここで終了します
システム環境に応じて、必要なすべての変数を更新します。
4.バックアップスクリプトの実行方法
スクリプトに実行(x)権限を設定します。
chmod +x s3-backup-mysql.sh
次に、バックアップスクリプトを実行します。
./s3-backup-mysql.sh
5.バックアップスクリプトを毎日実行するようにスケジュールします
crontabを使用してシェルスクリプトをスケジュールし、毎日実行します。
crontab -e
以下の設定をファイルの最後に追加します。
# Run daily @ 2am
0 2 * * * /backup/scripts/s3-backup-mysql.sh > /dev/null 2>&1
ファイルを保存して閉じます。
結論
このチュートリアルでは、MySQLデータベースをバックアップしてAmazonS3バケットにアップロードするためのシェルスクリプトを提供します。 これは、データベースのバックアップを自動化し、クラウドストレージにコピーを保存するのに役立つ可能性があります。