Najłatwiejszym sposobem zautomatyzowania tego zadania byłoby połączenie zrzutów MySQL i cronjob. Wiele informacji na ten temat można znaleźć na tej i innych stronach internetowych, ale ze względu na zakończenie:
Utwórz plik mysqldump.sh
Który będzie zawierał polecenie mysql dump, które zaplanujemy w zadaniu cron (zastąp użytkownika, hasło i ścieżkę, aby pasowały do twojego środowiska):
mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz
Edycja: Jeśli chcesz, aby skrypt przechował kopię zapasową w zdalnej lokalizacji, po prostu zamontuj odpowiednie urządzenie lub udostępnij i użyj ścieżki montowania w skrypcie.
Przetestuj skrypt
Upewnij się, że skrypt ma uprawnienia do wykonywania:
chmod +x /path/to/mysqldump.sh
Uruchom skrypt:
sh /path/to/mysqldump.sh
I sprawdź, czy działa poprawnie (plik kopii zapasowej zostanie utworzony w określonym folderze kopii zapasowej).
Utwórz i zaplanuj nowe zadanie cron
W wierszu polecenia wpisz
sudo crontab -e
I dodaj następujący wiersz na dole pliku:
30 23 * * * /path/to/mysqldump.sh
Spowoduje to wykonanie skryptu codziennie o 23:30.
Rozszerz ten prosty skrypt
Istnieje dosłownie mnóstwo rzeczy, które możesz zrobić, aby ulepszyć tę prostą metodę tworzenia kopii zapasowych:
- Tworzenie kopii zapasowej w innym systemie
- Monitoruj miejsce na dysku
- Raportowanie przez e-mail
- ...
Więc nie kończ tutaj i eksperymentuj! :-)
Użyj narzędzi do tworzenia kopii zapasowych lub usług tworzenia kopii zapasowych w chmurze
Chociaż powyższa metoda jest jedną z najłatwiejszych i można ją rozszerzyć w celu spełnienia określonych potrzeb, warto wspomnieć, że istnieją inne alternatywy:
- narzędzia do tworzenia kopii zapasowych, takie jak AutoMySQLBackup, aplikacja typu open source, która może ułatwić proces konfiguracji powiadomień e-mail, kompresji, szyfrowania, rotacji i typu (np. przyrostowego) kopii zapasowych. Jeśli chodzi o Mai 2018, jest on dostępny dla Ubuntu Server za pośrednictwem APT.
- oparte na chmurze usługi tworzenia kopii zapasowych, takie jak BackupBird, myRepono, Bitcan itp., które mogą być interesujące, jeśli zarządzasz kilkoma serwerami baz danych i chcesz centralnie zarządzać wszystkimi ich kopiami zapasowymi.
Należy pamiętać, że nie jestem w żaden sposób powiązany z żadnym z wyżej wymienionych rozwiązań i usług i wymieniam je tylko w celach informacyjnych, więc używaj ich na własne ryzyko.
Przydatne linki / referencje:
Cron -> https://en.wikipedia.org/wiki/Cron
Zrzut MySQL -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
date +%F
- automatycznie wybierze kombinację roku + miesiąca + daty dostosowaną do ustawień regionalnych użytkownika (na przykład otrzymamYYYY-MM-DD
).sudo crontab -e
i nie zapomnij, aby skrypt był wykonywalny:chmod +x /path/to/mysqldump.sh