Pangkalan Data MySQL Backup ke Amazon S3 (Skrip Shell)

Pangkalan Data MySQL Backup ke Amazon S3 (Skrip Shell)

Skrip shell adalah koleksi arahan untuk melaksanakan pekerjaan tertentu. MySQL adalah sistem pengurusan pangkalan data relasi yang digunakan secara meluas pada sistem linux. Amazon S3 adalah peranti penyimpanan awan yang disediakan oleh Amazon Web Services. Ini adalah amalan yang baik untuk pentadbir sistem untuk membuat sandaran pangkalan data secara berkala dan menyimpannya di lokasi terpencil seperti Amazon S3.

  • Skrip bash ringkas untuk sandaran pangkalan data mysql
  • Skrip Bash Advance untuk Backup Pangkalan Data MySQL

Tutorial ini mengandungi skrip shell yang membuat sandaran pangkalan data MySQL dan memuat naiknya ke Amazon S3 Bucket. Anda juga boleh menggunakan skrip shell ini untuk menyokong pangkalan data MariaDB atau Amazon Aurora (MySQL yang serasi).

Pangkalan Data MySQL Backup ke S3

Gunakan tutorial langkah demi langkah di bawah untuk menyokong pangkalan data MySQL dan muat naiknya ke Amazon S3 Bucket.

1. Pasang AWS CLI

Untuk menggunakan skrip ini, sistem mesti dipasang AWS CLI.

https: // tecadmin.bersih/pemasangan-AWS-cli-in-linux/

2. Buat baldi S3

Log masuk ke Konsol Pengurusan AWS dan buat baldi S3 baru.

Sebagai alternatif, anda juga boleh membuat baldi s3 melalui AWS CLI. Perintah akan menjadi seperti:

AWS S3API Create-Bucket--Bucket S3-Bucket-Name-Region US-East-1  

Ganti nama dan wilayah baldi sahaja.

3. Skrip shell ke sandaran pangkalan data mysql ke s3

Salin skrip shell di bawah ke fail seperti db-backup.sh. Skrip ini menggunakan mysqldump Perintah untuk membuat sandaran pangkalan data. Kemudian gunakan gzip Perintah untuk mengarkibkan fail sandaran dan akhirnya digunakan AWS perintah untuk memuat naik fail sandaran ke amazon s3 baldi.

Buat fail seperti /sandaran/skrip/s3-backup-mysql.sh Dalam edit editor teks kegemaran anda. Kemudian tambahkan kandungan di bawah:

#!/usr/bin/env bash ############################################################# ################################################## ############################################### ### ### #### Pengarang: Rahul Kumar ##### laman web: https: // tecadmin.Net ################################################# ################################################# ############################################### # # Tetapkan nama folder formate dengan tarikh (2022-05-28) date_format = $ (tarikh +"%y-%m-%d") # kelayakan pelayan mysql mysql_host = "localhost" mysql_port = "3306" mysql_user = " Pengguna "mysql_password =" kata laluan " # jalur ke direktori sandaran tempatan local_backup_dir ="/sandaran/dbbackup " # set s3 nama baldi dan laluan direktori s3_bucket_name =" s3-bucket-name "s3_bucket_path =" Backups/db-backup " Hari untuk menyimpan fail sandaran tempatan BACKUP_RETAIN_DAYS = 30#Gunakan pangkalan data pangkalan data yang dipisahkan pangkalan data pangkalan data = "db1 db2 db3" ##### Jangan ubah di bawah baris ini mkdir -p $ local_backup_dir/$ local_dir local_dir = $ Local_backup_dir/$ date_format remote_dir = s3: // $ s3_bucket_name/$ s3_bucket_path untuk db dalam $ pangkalan data; Adakah mysqldump \ -H $ mysql_host \ -p $ mysql_port \ -u $ mysql_user \ -p $ mysql_password \ -single -transaksi $ db | gzip -9> $ local_dir/$ db -$ date_format.SQL.GZ AWS S3 CP $ local_dir/$ db-$ date_format.SQL.gz $ remote_dir/ $ date_format/ selesai dbdeldate = "date +" $ date_format "--date =" $ backup_retain_days hari yang lalu "" Jika [ ! -z $ local_backup_dir]; kemudian cd $ local_backup_dir jika [ ! -z $ dbdeldate] && [-d $ dbdeldate]; kemudian rm -rf $ dbdeldate fi fi ## skrip berakhir di sini
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#!/usr/bin/env bash ############################################################# ############################################### ############################################### ######### Pengarang: Rahul Kumar ##### laman web: https: // tecadmin.Net ################################################# ############################################### ############################################### # # Tetapkan nama folder formate dengan tarikh (2022-05-28) date_format = $ (tarikh +"%y-%m-%d") # mysql pelayan kelayakansmysql_host = "localhost" mysql_port = "3306" mysql_user = "pengguna "Mysql_password =" kata laluan " # jalur ke direktori sandaran tempatan FileSbackup_Retain_Days = 30#Gunakan pangkalan data pangkalan data tunggal atau ruang data yang dipisahkan (db1 db2 db3 "##### jangan ubah di bawah baris ini mkdir -p $ local_backup_dir/$ date_format /$ Date_format remote_dir = s3: // $ s3_bucket_name/$ s3_bucket_path untuk db dalam pangkalan data $; Adakah mysqldump \ -H $ mysql_host \ -p $ mysql_port \ -u $ mysql_user \ -p $ mysql_password \ -single -transaksi $ db | gzip -9> $ local_dir/$ db -$ date_format.SQL.GZ AWS S3 CP $ local_dir/$ db-$ date_format.SQL.gz $ remote_dir/$ date_format/selesai dbdeldate = 'date +"$ date_format" --date = "$ backup_retain_days hari yang lalu"' jika [ ! -z $ local_backup_dir]; kemudian cd $ local_backup_dir jika [ ! -z $ dbdeldate] && [-d $ dbdeldate]; kemudian rm -rf $ dbdeldate fifi ## skrip berakhir di sini

Kemas kini semua pembolehubah yang diperlukan mengikut persekitaran sistem anda.

4. Cara menjalankan skrip sandaran

Tetapkan kebenaran melaksanakan (x) pada skrip:

CHMOD +X S3-BACKUP-MYSQL.sh  

Kemudian jalankan skrip sandaran.

./s3-backup-mysql.sh  

5. Jadual skrip sandaran untuk dijalankan setiap hari

Jadualkan skrip shell menggunakan Crontab untuk dijalankan setiap hari.

Crontab -e  

Tambahkan tetapan di bawah ke hujung fail:

# Berjalan setiap hari @ 2am 0 2 * * */sandaran/skrip/s3-backup-mysql.sh> /dev /null 2> & 1 

Simpan fail dan tutupnya.

Kesimpulan

Tutorial ini memberikan anda skrip shell untuk menyokong pangkalan data MySQL dan memuat naiknya ke Amazon S3 Bucket. Yang boleh membantu anda untuk mengautomasikan sandaran pangkalan data dan simpan salinan pada storan awan.