Posiadając swój własny serwer www dobrze jest zadbać o backup bazy danych która zawiera praktycznie wszystkie treści zamieszczone na naszych stronach.
Aby zrobić backup bazy danych użyjemy dostępnego po zainstalowaniu serwera mysql narzędzia mysqldump a aby zautomatyzować proces stworzymy skrypt .sh i dodamy jego uruchamianie do naszego crontab:
aby utworzyć sobie plik w dowolnym miejscu przechodzimy w terminalu do tego katalogu i wpisujemy (oczywiście jako root):
# touch backup_bazy.sh
następnie nadajemy mu prawa do wykonania:
# chmod 744 backup_bazy.sh
następnie edytujemy nasz skrypt:
# nano backup_bazy.sh
i wklejamy zawartość:
/usr/bin/mysqldump nazwabazy -u root -phasło | gzip > /root/sql_backups/nazwa-`date +%Y-%m-%d`.sql.gz
należy pamiętać aby wpisać zamiast nazwabazy nazwę bazy której backup chcemy stworzyć oraz zamiast hasło wpisać hasło roota bazy danych mysql (nie hasło roota systemowego).
PS. w wyrażeniu -phasło celowo nie ma spacji, nie wstawiaj jej na siłę bo nie będzie działać!!!
/root/sql_backups/nazwa-
oznacza miejsce w którym bedzie zapisywany nasz backup bazy danych, można zmienić na dowolny, natomiast końcówka nazwa- oznaczać będzie nazwę pliku, po myślniku zostanie wstawiona data utworzenia backupu.
Jeśli chcemy utworzyć backup wszystkich baz znajdujących się w naszym mysql to zawartość pliku sh powinna wyglądać następująco:
/usr/bin/mysqldump -u root -phasło --all-databases | gzip > /root/sql_backups/nazwa-`date +%Y-%m-%d`.sql.gz
to spowoduje zrobienie backupu wszystkich naszych baz do jednego pliku.
Oczywiście nasze backupy będą spakowane gzipem w celu zaoszczędzenia miejsca 🙂
Po poprawnym utworzeniu pliku przechodzimy do konfiguracji crontab aby skrypt nam się uruchamiał automatycznie uruchamiamy edycje pliku crontaba:
# crontab -e
co uruchomi nam edytor vi, następnie znajdując się w edytorze wciskamy na klawiaturze klawisz i, a następnie wklejamy kombinacją klawiszy Shift + Insert poniższy text:
0 4 * * * /root/backup_bazy.sh
W takiej konfiguracji plik będzie uruchamiany codziennie o 4:00 rano.
Zawartość naszego pliku crontab możemy sprawdzić używając polecenia:
# crontab -l
Gotowe 🙂
Nie róbcie tego czasami tak jak jest w poradniku. Plik wykonywalny oraz backup NIGDY W ŻYCIU nie powinien znajdować się w folderze www, broń boże. Przecież każdy może go podejrzeć i zrobić z nim co chce. Reszta super.
Oczywiście masz rację 🙂 u siebie trzymam w innym katalogu (/home).
Dzięki za zwrócenie uwagi 🙂
Pingback: Backup bazy danych wysyłany na maila. – Mateusz Pajewski
Pingback: Backup bazy danych wysyłany na maila. « Same cuda panie