Ostatnio pisałem o tym, jak z poziomu PHP wykonać backup bazy danych oraz jak spakować pliki do jednego archiwum .tar.gz, również przy pomocy skryptu PHP. Nadszedł czas na podsumowanie i połączenie obu tych metod w jedną całość na wypadek, gdyby kiedykolwiek serwer z twoją stroną WWW zmienił się w coś takiego jak na zdjęciu obok, a wraz z nim miesiące twojej pracy nagle przestały istnieć. W efekcie otrzymamy niezwykle prosty, ale skuteczny skrypt do automatycznego backupu:
$date = date("Y-m-d_G-i-s");
system("mysqldump --opt --user=username--password=hasło --host=nazwa_hosta_z_bazą baza_danych > db_$date.sql");
system("tar zcf backup_$date.tar.gz ../www/ db_$date.sql &");
system("rm db_$date.sql");
@mail("twój@mail.tld", "Backup $date wykonany", "\n", "From: Backup <twój@mail.tld>");
1. W pierwszej linijce pobieramy oczywiście aktualną datę. Przyda nam się ona w każdym następnym kroku – umieścimy ją w nazwie każdego tworzonego pliku oraz w nazwie naszego końcowego archiwum.
2. Druga linijka to zrzut bazy danych. Przeczytaj ten artykuł, by dowiedzieć się więcej. Zamień odpowiednie zmienne takie jak nazwa użytkownika, hasło itp. na własne, poprawne dane.
3. W trzeciej linijce znajduje się polecenie utworzenia archiwum, w którym znajdzie się katalog www oraz zrzut bazy danych. Należy dostosować ścieżkę dostępu do katalogu ze stroną do własnych potrzeb. Więcej na temat tworzenia archiwum znajdziesz tutaj.
4. W czwartej linijce usuwamy plik ze zrzutem bazy danych – nie jest on nam już potrzebny, a jego kopia znajduje się już wewnątrz naszego archiwum.
5. W piątej linijce znajduje się funkcja mail(), która wysyła do nas maila z powiadomieniem o wykonaniu backupu. Można ją dowolnie dostosowywać do własnych potrzeb.
Cron: automatyczne wykonywanie skryptów co pewien czas
Ten skrypt można wykonywać ręcznie, wpisując jego nazwę i ścieżkę dostępu w zwykłej przeglądarce. To już i tak niezłe ułatwienie. Wystarczy, że w kalendarzu zaznaczysz sobie, że trzeba zrobić backup co 2 tygodnie i po sprawie. Wykonujesz skrypt, pobierasz utworzone archiwum przez FTP i gotowe.
Można też zautomatyzować cały proces za pomocą cron’a. Cron to unixowy program, który służy do uruchamiania procesów na serwerach w określonych godzinach lub co określoną ilość czasu. Sprawdź, czy twój hosting ma dostęp do crona i zainstaluj skrypt według przewodnika dostarczonego przez firmę hostingową, żeby wykonywał się np. co 2 tygodnie, o godzinie 3 w nocy. Oczywiście możesz te opcje zmieniać i łączyć na wiele sposobów – zobacz jak wygląda przewodnik po cronie w OVH.
Zdjęcie komputera: alexmuse.


Witam wgrałem ten skrypt na stronę i gdy odpalam ręcznie http://www.strona.pl/skrypt i wyskakuje mi sam tekst na stronie który nic nie robi. Chyba coś źle zrobiłem. Może mój błąd polega, że nie dałem rozszerzenia bo nie wiem jaki.
Skrypt jest napisany w PHP, więc upewnij się, że twój serwer obsługuje skrypty w tym języku. Rozszerzenie powinno być .php