Sicherung von MySQL -Datenbanken auf Amazon S3 (Shell -Skript)

Sicherung von MySQL -Datenbanken auf Amazon S3 (Shell -Skript)

Ein Shell -Skript ist eine Sammlung von Befehlen, um einen bestimmten Job auszuführen. MySQL ist ein relationales Datenbankverwaltungssystem, das auf Linux -Systemen weit verbreitet ist. Amazon S3 ist ein Cloud -Speichergerät, das von Amazon Web Services bereitgestellt wird. Es ist eine gute Praxis für den Systemadministrator, Datenbanken in regelmäßigen Abständen zu sichern und an einem entfernten Ort wie Amazon S3 zu speichern.

  • Ein einfaches Bash -Skript für die Backup für MySQL -Datenbank
  • Ein Vorab -Bash -Skript für die Backup für MySQL -Datenbank

Dieses Tutorial enthält ein Shell -Skript, das MySQL -Datenbanken Backup erstellt und sie zu Amazon S3 -Eimer hochgeladen wird. Sie können dieses Shell -Skript auch verwenden, um Mariadb- oder Amazon Aurora (MySQL Compatible) Datenbanken zu sichern.

Sicherung von MySQL -Datenbanken zu S3

Verwenden Sie das folgende Schritt-für-Schritt.

1. Installieren Sie AWS CLI

Um dieses Skript zu verwenden, muss das System AWS CLI installiert haben.

https: // tecadmin.net/installing-aws-cli-in-linux/

2. Erstellen Sie S3 -Eimer

Melden Sie sich bei AWS Management Console an und erstellen Sie einen neuen S3 -Eimer.

Alternativ können Sie auch S3 -Bucket über AWS CLI erstellen. Der Befehl wird wie:

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

Ersetzen Sie einfach den Namen und die Region des Eimers.

3. Shell -Skript, um die MySQL -Datenbank auf S3 zu sichern

Kopieren Sie das folgende Shell-Skript in eine Datei wie DB-Backup.Sch. Dieses Skript verwendet Mysqldump Befehl zum Erstellen von Datenbanken Backups. Dann benutze gzip Befehl zum Archivieren von Sicherungsdateien und schließlich verwenden AWS Befehl zum Hochladen von Sicherungsdateien auf Amazon S3 Bucket.

Erstellen Sie eine Datei wie /backup/scripts/s3-backup-mysql.Sch Bearbeiten Sie in Ihrem bevorzugten Texteditor. Fügen Sie dann den folgenden Inhalt hinzu:

#!/usr/bin/env bash ############################################################################################ zu erhalten ################################################################################################################### zu erhalten ####################################################################################################################### zu erhalten ### ### #### Autor: Rahul Kumar ##### Website: https: // tecadmin.Netz #### ############################################# ########################################################################################################################## zurild ####################################################################################################################### zu erhalten # # Setzen Sie den Ordnernamenformat mit Datum (2022-05-28) DATE_FORMAT = $ (Datum +%y-%M-%d ") # MySQL Server Anmeldeinformationen mysql_host =" localhost "mysql_port =" 3306 "mysql_user =" Benutzer "mySQL_Password =" Passwort " # Pfad zum lokalen Backup-Verzeichnis local_backup_dir ="/backup/dbbackup " # Set S3 Bucket Name und Verzeichnispfad s3_bucket_name =" s3-bucket-name " Tage zum Speichern lokaler Backup -Dateien BACKUP_RETAIN_DAYS = 30#Verwenden Sie eine einzelne Datenbank oder eine einzelne Speicherdatenbank -Namensdatenbanks = "DB1 DB2 DB3" ##### NICHT UNTER DIESE ARTEILE DIE BILDE MKDIR -P $ local_backup_dir/$ Date_format \ local_dir = $ Local_backup_dir/$ DATE_FORMAT remote_dir = s3: // $ s3_bucket_name/$ s3_bucket_path für DB in $ Datenbanken; mySQLDUMP \ -h $ mysql_host \ -p $ mysql_port \ -u $ mysql_user \ -p $ mysql_password \ - -Single -transaktion $ db | GZIP -9> $ local_dir/$ db -$ DATE_FORMAT.sql.GZ AWS S3 CP $ local_dir/$ db-$ DATE_FORMAT.sql.gz $ remote_dir/ $ DATE_FORMAT/ DED DBDELDATE = "DATE ​​+" $ DATE_FORMAT " - -date =" $ backup_retain_days Tage vor ["if [ ! -Z $ local_backup_dir]; dann CD $ local_backup_dir if [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Dann endet RM -rf $ dbdeldate fi Fi ## Skript hier endet hier
12345678910111213141516171819202122324252627282930313333435363738394041424243444546484895051523535555555555555555555555555759606622#!/usr/bin/env bash ############################################################################################ zu erhalten ####################################################################################################################### zu erhalten ####################################################################################################################### zu erhalten ########## Autor: Rahul Kumar ##### Website: https: // tecadmin.Netz################################################# ####################################################################################################################### zu erhalten ####################################################################################################################### zu erhalten # # Setzen Sie den Ordnernamenformat mit Datum (2022-05-28) DATE_FORMAT = $ (DATE +"%Y-%M-%D") # MySQL Server AnmeldeinformationenMysql_Host = "localhost" mysql_port = "3306" mysql_user = "user =" user = "user =" user = "user user =" user user = "user user "MYSQL_PASSWORD="password" # Path to local backup directoryLOCAL_BACKUP_DIR="/backup/dbbackup" # Set s3 bucket name and directory pathS3_BUCKET_NAME="s3-bucket-name"S3_BUCKET_PATH="backups/db-backup" # Number of days to store Lokale Backup -Dateienbackup_retain_days = 30#Verwenden Sie eine einzelne Datenbank oder eine einzelne Speicherdatenbank -Namensdatabases = "db1 db2 db3" ######ua unter dieser Linie mkdir -p $ local_backup_dir/$ Date_format local_dir = $ /$ Date_format remote_dir = s3: // $ s3_bucket_name/$ s3_bucket_path für DB in $ Datenbanken; mySQLDUMP \ -h $ mysql_host \ -p $ mysql_port \ -u $ mysql_user \ -p $ mysql_password \ - -Single -transaktion $ db | GZIP -9> $ local_dir/$ db -$ DATE_FORMAT.sql.GZ AWS S3 CP $ local_dir/$ db-$ DATE_FORMAT.sql.gz $ remote_dir/$ DATE_FORMAT/DEER DBDELDATE = 'DATE +"$ DATE_FORMAT" - -date = "$ backup_retain_days Tage vor [' if [ ! -Z $ local_backup_dir]; dann CD $ local_backup_dir if [ ! -z $ dbdeldate] && [-d $ dbdeldate]; Dann endet RM -rf $ dbdeldate Fifi ## Skript hier endet hier

Aktualisieren Sie alle erforderlichen Variablen gemäß Ihrer Systemumgebung.

4. So führen Sie das Backup -Skript aus

Setzen Sie die Berechtigung ausführen (x) im Skript:

CHMOD +X S3-Backup-Mysql.Sch  

Führen Sie dann das Backup -Skript aus.

./S3-Backup-Mysql.Sch  

5. Planen Sie das Sicherungsskript, um täglich auszuführen

Planen Sie das Shell -Skript mit Crontab, um täglich auszuführen.

Crontab -e  

Fügen Sie die folgenden Einstellungen zum Ende der Datei hinzu:

# Täglich ausführen @ 2am 0 2 * * * */backup/scripts/s3-backup-mysql.sh> /dev /null 2> & 1 

Speichern Sie die Datei und schließen Sie sie.

Abschluss

Dieses Tutorial bietet Ihnen ein Shell -Skript, um MySQL -Datenbanken zu sichern und sie in den Amazon S3 -Bucket hochzuladen. Dies könnte für Sie hilfreich sein, um Datenbanksicherungen zu automatisieren und eine Kopie im Cloud -Speicher zu speichern.