Automatski backup pomoću cPanel-a i php skripte

Šta je najgore što može da mi se desi? Šta mogu da izgubim? Svako ko ima ili održava neki web sajt treba sebi da postavi ova pitanja, a odgovor je sve. Kada kažem sve to i mislim, jer nikad ne treba previše razmišljati kolika je verovatnoća da se gubitak desi, nego sta uraditi kada se ostane bez svega. Pa naravno vratiti poslednji backup, ako ga posedujemo.

Mnoge web hosting kompanije naplaćuju proces izrade dnevnih backup-ova mimo standardne cene hosting-a, međutim ako posedujete cPanel skriptu za administraciju vašeg sajta, nemate potrebu za dodatnim plaćanjem.

Sve što treba da uradite je da napravite .php fajl sa sledećim kodom, prepravite podatke za login i da isti uploadujete u root direktorijum vašeg cPanel-a(/home/cpusername):

 

Posle dodavanja php fajla na server napravite jedan backup „ručno“ iz cPanela u svoj home direktorijum(Backups -> Download or Generate Full Website Backup -> Generate Backup) i tek kada se uverite da postoji .tar.gz fajl u /home/cpusername folderu možete nastaviti dalje.

Sad smo na pola puta, sledeća stvar koja treba da se uradi jeste automatsko pokretanje ove php skripte(cron job). U vašem cPanelu nađite tab Advanced i u njemu Cron jobs kao na slici:

 

 

Klikom na Cron jobs dobijamo meni u kome možemo namesiti periodično backup-ovanje sajta. Ovde treba uzeti u obzir vremensku razliku između serverskog vremena i našeg lokalnog vremena. Nađite po IP adresi servera gde se fizički nalazi i onda je lako odrediti vremensku razliku. Forma za dodavanje Cron Job-a izgleda ovako:

 

 

Imamo polja za minute, sate, dane, mesece i vikende, pored kojih postoji padajuci meni, globalni padajuci meni za ceo Cron job i polje za komandu koja se izvršava u Cron job-u. Ako želimo da se backup pravi svakog dana u 00:01h i ako nam serversko vreme kasni za 6 sati onda ćemo u polje za minute upisati 1, u polje za sate 18 a sve ostalo staviti na Every Hour(*) iz padajuceg menija ili samo upisati * u ostala polja. U polje za commandu koja treba da se izvrši ide: rm *.tar.gz && /usr/local/bin/php /home/cpusername/imephpfajla.php , kao na slici:

 

 

Prvi deo komande(rm *.tar.gz) nam služi za brisanje prethodnog backup-a kako se on ne bi dodao u novi koji se pravi kad se pozove .php skripta. Pošto su komande povezane zato smo morali da napravimo „ručno“ prvi backup i da na taj način postavimo početno stanje. Rezultat dodavanja Cron job-a treba da izgleda ovako:

 

 

Da rezimiramo, ovim smo dobili dnevni backup koji sadrži sve(baze, fajlove, logove, …), čuva se na istom serveru, nije stabilno da ga sama php skripta upload-uje na neki drugi ftp server zbog limita vremena izvršenja skripte(max_execution_time = 60s) i neće sadržati prethodne backup-ove(neće biti rekurzije istih).

Napomena: Pošto se u ovoj varijanti backup pravi svakog dana preporučujem vam da skidate svakodnevno sa vašeg servera pomoću  neke. sh skripte, wget-a i cron-a ako koristite Linux ili ako imate neki drugi server koji možete da iskoristite. Preporuka je da backup-ove uvek imate još negde sem na serveru koji ste backup-ovali. Primer .sh skripte koja koristi wget za preuzimanje backup-a preko FTP-a.

 

 

That’s All Folks! :)

 

 

 

            

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *