Jak automatycznie wykonać kopię zapasową bazy danych MySQL za pomocą skryptu Bash

Jak Automatycznie Wykonac Kopie Zapasowa Bazy Danych Mysql Za Pomoca Skryptu Bash



MySQL to popularny RDBMS, który pomaga w łatwym przechowywaniu i zarządzaniu relacyjnymi bazami danych. Zapewnia również narzędzie klienckie mysqldump do tworzenia logicznej kopii zapasowej baz danych MySQL. MySQL obsługuje wiele języków i platform, co oznacza, że ​​możesz używać skryptów Bash do korzystania z narzędzia mysqldump do tworzenia kopii zapasowych w systemie Linux.

Ten przewodnik pokaże krok po kroku, jak automatycznie tworzyć kopie zapasowe baz danych MySQL przy użyciu skryptu Bash.

Jak automatycznie wykonać kopię zapasową bazy danych MySQL za pomocą skryptu Bash?

Utwórz skrypt Bash do tworzenia kopii zapasowej bazy danych MySQL. Najpierw otwórz terminal, utwórz katalog i przejdź do katalogu, wpisując następujące polecenia:







mkdir mysqlbackup

cd mysqlbackup/

Dane wyjściowe pokazują, że pomyślnie przeszedłeś do katalogu:





Utwórz skrypt bash o nazwie „ kopia zapasowa.sh ” za pomocą dowolnego edytora, do tego postu używany jest edytor nano:





nano backup.sh

Skrypt bash utworzy:



Podaj poświadczenia MySQL i nazwę bazy danych, której kopię zapasową chcesz utworzyć:

DB_USER='nazwa użytkownika'

DB_PASS='hasło'

DB_

Ustaw katalog kopii zapasowych „ BACKUP_DIR ” podając lokalizację, w której ma zostać zapisany plik kopii zapasowej:

BACKUP_DIR='/ścieżka/do/twojej/kopii zapasowej/katalogu'

Ustaw format daty dla nazwy pliku kopii zapasowej:

DATA=$(data +'%Y-%m-%d_%H-%M-%S')

Użyj tego polecenia mysqldump z poświadczeniami bazy danych MySQL, aby utworzyć plik kopii zapasowej SQL:

mysqldump --user=$DB_USER --password=$DB_PASS $DB_NAME > $BACKUP_DIR/$DB_NAME-$DATE.sql

Aby skompresować plik kopii zapasowej SQL za pomocą narzędzia gzip, użyj tego polecenia:

gzip $BACKUP_DIR/$DB_NAME-$DATE.sql

Aby zaoszczędzić miejsce na dysku, usuń stare pliki kopii zapasowej po pewnym czasie, na ten okres „ 7 ” dni plik kopii zapasowej zostanie usunięty za pomocą tego polecenia:

znajdź $BACKUP_DIR -wpisz f -nazwa '*.gz' -mtime +7 -delete

Zapisz plik i wyjdź z edytora nano, naciskając „ CTRL + X ' Klucze:

Zmień uprawnienia skryptu bash na wykonywalny, uruchamiając to polecenie:

chmod +x kopia zapasowa.sh

Bezbłędne wyjście oznacza, że ​​wykonanie polecenia powiodło się:

Uruchom skrypt za pomocą tego polecenia bash:

sudo bash backup.sh

Wpisz hasło Ubuntu i użyj „ ls ”, aby sprawdzić, czy plik kopii zapasowej został utworzony, czy nie:

Plik kopii zapasowej został pomyślnie utworzony przy użyciu skryptu bash. Teraz, aby zautomatyzować proces tworzenia kopii zapasowej za pomocą „ cron Narzędzie do planowania zadań. Aby przesłać nowe zadanie cron, użyj opcji „ -To jest opcja z crontabem:

crontab -e

Ustaw czas automatycznego uruchamiania skryptu bash. W tym poście „ 2 w nocy ” jest wybrane do automatycznego uruchamiania skryptu:

0 2 * * * /ścieżka/do/backup_mysql.sh

Zapisz i zamknij plik:

Zobaczmy inne polecenie, jeśli chcesz wykonać kopię zapasową bazy danych po każdym „ 5 minut ” wpisz to i zapisz plik:

*/5 * * * * /ścieżka/do/backup_mysql.sh

Pomyślne utworzenie zadania zajmie crontabowi trochę czasu:

Sprawdź katalog pod kątem plików kopii zapasowych, które są tworzone automatycznie po „ 2 w nocy ', używając ' ls ' Komenda:

Pliki kopii zapasowej bazy danych MySQL są tworzone automatycznie przy użyciu skryptu bash i narzędzia cron.

Wniosek

Utwórz skrypt bash, podając poświadczenia MySQL i nazwę bazy danych, której kopię zapasową chcesz utworzyć, oraz format nazwy pliku. Użyj polecenia mysqldump, aby utworzyć kopię zapasową pliku SQL, gzip, aby go skompresować, i uruchom skrypt. Użyj crontab, aby zautomatyzować proces tworzenia kopii zapasowej. W tym poście omówiono sposób automatycznego tworzenia kopii zapasowej bazy danych MySQL przy użyciu skryptu Bash.