tech

MySQLデータベースをAmazonS3(シェルスクリプト)にバックアップ

(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 お気に入りのテキストエディタを編集します。 次に、以下のコンテンツを追加します。

  1. #!/ usr / bin / env bash
  2. #################################################### ######################
  3. #################################################### ######################
  4. ###
  5. ####作成者:Rahul Kumar
  6. #####ウェブサイト:https://tecadmin.net
  7. ####
  8. #################################################### ######################
  9. #################################################### ######################
  10. #フォルダ名の形式を日付で設定します(2022-05-28)
  11. DATE_FORMAT=$((日にち +”%Y-%m-%d”)。
  12. #MySQLサーバーの資格情報
  13. MYSQL_HOST=「ローカルホスト」
  14. MYSQL_PORT=「3306」
  15. MYSQL_USER=”ユーザー”
  16. MYSQL_PASSWORD=”パスワード”
  17. #ローカルバックアップディレクトリへのパス
  18. LOCAL_BACKUP_DIR=「/backup/dbbackup」
  19. #s3バケット名とディレクトリパスを設定します
  20. S3_BUCKET_NAME=「s3-バケット名」
  21. S3_BUCKET_PATH=「backups/db-backup」
  22. #ローカルバックアップファイルを保存する日数
  23. BACKUP_RETAIN_DAYS=30
  24. #単一のデータベースまたはスペースで区切られたデータベースの名前を使用する
  25. データベース=「DB1DB2DB3」
  26. この線より下は変更しないでください
  27. mkdir -p ${LOCAL_BACKUP_DIR/${DATE_FORMAT
  28. LOCAL_DIR=${LOCAL_BACKUP_DIR/${DATE_FORMAT
  29. REMOTE_DIR=s3://${S3_BUCKET_NAME/${S3_BUCKET_PATH
  30. 為に db の $データベース; 行う
  31. mysqldump \
  32. -h ${MYSQL_HOST \
  33. -P ${MYSQL_PORT \
  34. -u ${MYSQL_USER \
  35. -p${MYSQL_PASSWORD \
  36. -独身-取引 ${db | gzip -9 >> ${LOCAL_DIR/${db-${DATE_FORMAT.sql.gz
  37. aws s3 cp ${LOCAL_DIR/${db-${DATE_FORMAT.sql.gz ${REMOTE_DIR/${DATE_FORMAT/
  38. 終わり
  39. DBDELDATE=`日にち +「$DATE_FORMAT」 -日にち=「$BACKUP_RETAIN_DAYS日前」`
  40. もしも [ ! -z $LOCAL_BACKUP_DIR ]; それから
  41. CD ${LOCAL_BACKUP_DIR
  42. もしも [ ! -z $DBDELDATE ] && [ -d $DBDELDATE ]; それから
  43. rm -rf ${DBDELDATE
  44. fi
  45. fi
  46. ##スクリプトはここで終了します

システム環境に応じて、必要なすべての変数を更新します。

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バケットにアップロードするためのシェルスクリプトを提供します。 これは、データベースのバックアップを自動化し、クラウドストレージにコピーを保存するのに役立つ可能性があります。

他の同様の投稿

動物の世界

コメントを残す

メールアドレスが公開されることはありません。

Fill out this field
Fill out this field
有効なメールアドレスを入力してください。
You need to agree with the terms to proceed

多分あなたは興味があります