Przejdź do głównej zawartości

Kopie zapasowe baz danych MySQL w folderze lokalnym



Zdecydowałem się całkowicie zrezygnować z używania ispmanager, ponieważ zajmuje ono zasoby i służy tylko jednemu - backupowi danych. Ale ponieważ można to zrobić osobiście, utrzymanie panelu na serwerze dla dziesięciu stron nie ma sensu.

Dlatego pierwszym zadaniem jest tworzenie kopii zapasowych baz danych mysql. Bazy danych mają niewielki rozmiar, więc używana będzie najprostsza wersja kopii zapasowych - tworzenie archiwów i umieszczanie ich w określonym folderze serwera.



Oczywiście, bezpieczniej byłoby wysłać kopię zapasową sftp gdzieś do innego serwera w innym centrum danych (i kraju, który już tam jest), ale ponieważ moje witryny zmieniają się kilka razy w miesiącu, pobieranie kopii zapasowych co dwa dni nie jest trudne według zawodu. :)

Nie miałem doświadczenia w pisaniu skryptów w Bashu do tej chwili. Ale nie było to trudne, biorąc pod uwagę liczne przykłady skryptów kopii zapasowych mysql na różnych stronach dotyczących administracji serwerem.



Sam skrypt mysqlbackup.sh:

  #! / bin / bash
 # Inicjalizuj zmienne

 TMPDIR = "sqlfiles"
 BACKUPDIR = "/ storage"
 USER = "root"
 PASS = "xxx"
 TIMEY = $ (data +% Y-% m-% d)

 # Sprawdź dostępność folderów dla kopii zapasowych

 jeśli [!  -d "$ BACKUPDIR"];  następnie
   mkdir -m 0700 "$ BACKUPDIR"
 fi

 # Sprawdź dostępność katalogu tymczasowego

 jeśli [!  -d "$ BACKUPDIR / $ TMPDIR"];  następnie
   mkdir -m 0700 "$ BACKUPDIR / $ TMPDIR"
 fi

 # Zapisz kopie

 cd "$ BACKUPDIR / $ TMPDIR"
 dla bazy danych w `mysql -s -r -e 'POKAŻ BAZY DANYCH' |  grep -v Baza danych |  grep -v informacja_schemat |  grep -v performance_schema |  grep -v mysql`;
 wykonaj mysqldump $ database> $ database.sql; done

 # Utwórz archiwum

 cd "$ BACKUPDIR"
 bazy danych tar -cjf - "$ TIMEY" .tbz2 "$ TMPDIR"
 bazy danych chmod 0600 - "$ TIMEY" .tbz2

 # Usuń folder tymczasowy

 rm -r $ TMPDIR
 echo "Bazy danych zapisane!"
 wyjdź 1 

Praca z mysql odbywa się bezpośrednio od użytkownika root, ponieważ ma on dostęp do wszystkich baz danych jednocześnie.

Database information_schema , mysql , performance_schema są wykluczone z kopii zapasowej. Następnie wszystkie bazy danych są umieszczane w archiwum bzip2 i przechowywane w określonym folderze, skąd można je później pobrać.



Zadanie wykonania skryptu raz dziennie jest zapisane w programie planującym Cron, na przykład o pierwszej nad ranem.

  00 01 * * * sh ~ / mysqlbackup.sh 

Jeśli w ustawieniach korony zostanie ustawiony prawidłowy adres e-mail, raport zostanie wysłany na pocztę, na której zostaną zapisane zapisane bazy danych.

PS Możesz także tworzyć kopie zapasowe i kilka razy dziennie. Aby to zrobić, musisz określić czas utworzenia w nazwie archiwum, aby plik nie został nadpisany.



Jak oceniasz artykuł?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Brak ocen jeszcze)
Ładowanie ...

” 4 komentarzy " Kopie zapasowe skryptów Mysql w folderze lokalnym "

    1. Dobra, stracony czas. Ale tylko dlatego, że używam pliku .my.cnf w moim głównym katalogu głównym. W tym formacie jest zarejestrowany login i hasło:

        [klient]
       użytkownik = root
       password = 12345qwerty 

      Powinieneś dodać to do postu wcześniej. :)

Dodaj komentarz

Twój e-mail nie zostanie opublikowany.