シェルスクリプトは、特定のジョブを実行するためのコマンドのコレクションです。 MySQLは、Linuxシステムで広く使用されているリレーショナルデータベース管理システムです。 Amazon S3は、AmazonWebServicesが提供するクラウドストレージデバイスです。 システム管理者は、データベースを定期的にバックアップし、AmazonS3などのリモートの場所に保存することをお勧めします。
このチュートリアルには、MySQLデータベースのバックアップを作成してAmazonS3バケットにアップロードするシェルスクリプトが含まれています。 このシェルスクリプトを使用して、MariaDBまたはAmazon Aurora(MySQL互換)データベースをバックアップすることもできます。
MySQLデータベースをS3にバックアップする
以下のステップバイステップのチュートリアルを使用して、MySQLデータベースをバックアップし、AmazonS3バケットにアップロードします。
1.AWSCLIをインストールします
このスクリプトを使用するには、システムにAWSCLIがインストールされている必要があります。
2.S3バケットを作成します
ログインして AWSマネジメントコンソール 新しい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 #### ################ #################################################### ####### ############################################# ###############################フォルダ名formateに日付を設定します(2022-05-28)DATE_FORMAT = $(date + “%Y-%m-%d”)#MySQLサーバーの資格情報MYSQL_HOST = “localhost” MYSQL_PORT = “3306” MYSQL_USER = “user” MYSQL_PASSWORD = “password”#ローカルバックアップディレクトリへのパスLOCAL_BACKUP_DIR = “/ backup / dbbackup” #s3バケット名とディレクトリパスを設定しますS3_BUCKET_NAME = “s3-bucket-name” S3_BUCKET_PATH = “backups / db-backup”#ローカルバックアップファイルを保存する日数BACKUP_RETAIN_DAYS = 30#単一のデータベースまたはスペースで区切られたデータベースの名前を使用しますDATABASES = “DB1 DB2DB3″#####この行の下で変更しないでくださいmkdir-p$ {LOCAL_BACKUP_DIR} / $ {DATE_FORMAT} LOCAL_DIR = $ {LOCAL_BACKUP_DIR} / $ {DATE_FORMAT} REMOTE_DIR = s3:// $ {S3_BUCKET_NAME} / $ {S3_BUCKET_PATH} for db in $ DATABASES; do mysqldump -h $ {MYSQL_HOST} -P $ {MYSQL_PORT} -u $ {MYSQL_USER} -p $ {MYSQL_PASSWORD} –single-transaction $ {db} | gzip -9> $ {LOCAL_DIR} / $ {db}-$ {DATE_FORMAT} .sql.gz aws s3 cp $ {LOCAL_DIR} / $ {db}-$ {DATE_FORMAT} .sql.gz $ {REMOTE_DIR} / $ { DATE_FORMAT} / done DBDELDATE = `date +” $ {DATE_FORMAT} “–date =”${BACKUP_RETAIN_DAYS}日前”`if [ ! -z ${LOCAL_BACKUP_DIR} ]; 次に、cd $ {LOCAL_BACKUP_DIR} if [ ! -z ${DBDELDATE} ] && [ -d ${DBDELDATE} ]; 次にrm-rf$ {DBDELDATE} fifi##スクリプトはここで終了します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
#!/ 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バケットにアップロードするためのシェルスクリプトを提供します。 これは、データベースのバックアップを自動化し、クラウドストレージにコピーを保存するのに役立つ可能性があります。
The post MySQLデータベースをAmazonS3(シェルスクリプト)にバックアップ– TecAdmin appeared first on Gamingsym Japan.