BikeGremlin pretraga...

Automatizacija bekapa cPanel reseller hostinga

U ovom članku pišem o aktuelnom rešenju koje koristim za automatizovano bekapovanje svih sajtova (cPanel naloga da budem precizniji) pod svojim cPanel reseller hosting nalozima (šta je to reseller hosting). Ovo uputstvo podrazumeva da znate raditi osnovne stvari u cPanel-u.
Ovde opisano rešenje možete koristiti i za automatizaciju bekapa shared hosting naloga (šta je to shared hosting). Samo umesto WHM korisničkog imena i lozinke koristite svoje cPanel korisničko ime i lozinku, a umesto adrese i porta WHM servera, koristite adresu i port cPanel servera.
Poseban članak objašnjava automatizaciju bekapa DirectAdmin reseller hosting naloga.

Sadržaj:

  1. Uvod
  2. WHM Backup Solutions i alternative
    2.1. WHMEasyBackup (WHMEZBACKUP)
    2.2. 2.2. WHM Backup Solutions – besplatan
  3. Konfigurisanje automatizovanih bekapa
    3.1. Skladište za bekape – Hetzner Box
    3.2. PHP putanja glavnog reseller cPanel naloga
    3.3. Adresa i port vašeg WHM servera
    3.4. Vaši WHM login podaci
    3.5. Kopiranje WHM Backup solutions na hosting server
    3.6. Konfigurisanje WHM Backup Solutions
    3.7. Kreiranje cron zadataka – automatizacija bekapa
  4. Rešavanje problema
  5. Problemi sa SFTP konekcijom
  6. Zaključak


1. Uvod

Više decenija posla s računarima naučilo me je da kod bekapa važi pravilo: “jedan, k’o nijedan.” Drugim rečima, sve što je važno, treba čuvati na barem dva različita, odvojena mesta.

Kada podaci obično nestanu? Minut pre narednog planiranog bekapa.

Zbog toga, pored kopija koje hosting provajder pravi, gledam da imam barem još jednu rezervnu kopiju (zapravo dve) na potpuno odvojenom skladištu.

Ovo sam dugo radio pomoću alata JetBackup, ali on više ne pravi kopije koje mogu sam lako testirati i proveriti da su ispravne (vidite JetBackup automatizacija reseller hosting bekapa za više detalja). Stoga sam tražio alternativna rešenja.

Nakon dosta istraživanja i testiranja, najbolje mi se pokazao program WHM Backup Solutions (link ka njihovom sajtu).

– Sadržaj –


2. WHM Backup Solutions i alternative

Kada sam shvatio da JetBackup u novoj verziji više ne pravi bekape koje mogu proveriti, editovati i iskoristiti nezavisno od hosting provajdera, počeo sam tražiti alternative.


2.1. WHMEasyBackup (WHMEZBACKUP)

Prvo rešenje koje mi je palo na pamet je WHMEasyBackup (link ka njihovom sajtu). Došlo je preporučeno na WebHostingTalk forumu (link ka istom), od strane više hosting provajdera. Imao sam dve lifetime licence kupljene 2019. godine i čuvane za slučaj da JetBackup počne štucati.

Računao sam: znam da postoje besplatna (eng. “free open source”) rešenja, ali ovo je plaćeno, pa ipak neko stoji iza toga, imam korisničku podršku, a zahvaljujući lifetime kupovini ne moram misliti o redovnim mesečnim uplatama.

Na moje neprijatno iznenađenje, ispostavilo se da su moje lifetime licence pretvorene u “stare licence,” koje ne važe za poslednju verziju softvera. To nije bilo jasno naznačeno u vreme kupovine. Ovo mi ne zvuči kao korektna poslovna politika.

Sad, oni tvrde da i stara verzija softvera radi i da će je apdejtovati u slučaju drastičnih izmena cPanel-a. Međutim, meni nije radila.

Umesto da se bakćem sa tehničkom podrškom hosting provajdera i WHMeasyBackup-a, odlučio sam se probati prvo besplatnu open source alternativu – i ona je radila odlično! 🙂

– Sadržaj –


2.2. WHM Backup Solutions – besplatan

WHM Backup Solutions mi se pokazao kao dobro rešenje i u ovom članku ću pisati o tome kako se pomoću njega konfiguriše automatizovanje bekapa.

Ovo je besplatno, open-source rešenje koje održava gospodin Peter Kelly – hvala lepo. 🙂

– Sadržaj –


3. Konfigurisanje automatizovanih bekapa

Bez dalje priče, evo korak-po-korak uputstva kako podesiti i automatizovano bekapovanje svojih cPanel reseller hosting naloga. Za to će nam trebati sledeći podaci (objašnjavam i kako se do njih dolazi):

  1. Adresa, korisničko ime i lozinka za pristup FTP serveru
  2. Putanja do PHP-a vašeg reseller cPanel naloga
  3. Adresa i port vašeg WHM servera
  4. Vaši WHM login podaci
  5. Putanja do WHM Backup Solutions direktorijuma


3.1. Skladište za bekape – Hetzner Box

Napisao sam poseban članak koji u detalje objašnjava kako se Hetzner Storage Box “kupuje” i podešava – “Hetzner Storage Box – objašnjeno.”

Preporučujem da sledite uputstva iz tog članka ako se odlučite za Hetzner skladište. Obratite posebno pažnju na 6. poglavlje – “Kreiranje dodatnih FTP korisničkih naloga,” jer ćemo to koristiti u nastavku.

Zapišite adresu FTP servera, korisničko ime, lozinku (vidite sliku 7 i pričitajte poglavlje 6 u gore linkovanom članku) i imajte na umu da Hetzner Storage Box za SCP koristi port 23, a za FTP port 21.

To može izgledati ovako:

  • Adresa FTP servera: u273500.your-storagebox.de
  • Username: u273500-sub1
  • Password: DSjk04#$9sdf3J0s2l

Naravno, možete koristiti bilo koje drugo (S)FTP skladište – princip je isti.

– Sadržaj –


3.2. PHP putanja glavnog reseller cPanel naloga

Ulogujte se na svoj glavni cPanel reseller hosting nalog i podesite PHP verziju na 7.4 (ako nije raspoloživa, tražite boljeg hosting provajdera).

Kreirajte fajl “phpinfo.php” (ili ga skinite sa BikeGremlin – phpinfo.php.zip) koji sadrži sledeći kod:

<?php
phpinfo(INFO_GENERAL);
echo '<br /><br /><strong>Path To PHP:  </strong>'.PHP_BINDIR.'/php';
?>

Ako želite videti i sve aktivne PHP ekstenzije, dodajte ovu liniju koda pre zatvaranja PHP-a (tj. pre “?>” linije):

phpinfo( );

Sada se ulogujte na glavni cPanel nalog svog reseller hosting naloga i uploadujte “phpinfo.php” u “public_html” direktorijum (ako ste skinuli fajl sa BikeGremlin, morate ga i otpakovati nakon upload-a).
Da, naravno, možete ovo uraditi i preko FTP klijenta.

Zatim u browser-u otvorite web adresu svog glavnog reseller hosting naloga i dodajte “/phpinfo.php” na kraju, na primer:
https://www.moj-reseller-domen.com/phpinfo.php

Putanja PHP-a vašeg reseller hosting cPanel naloga - zapišite je
Putanja PHP-a vašeg reseller hosting cPanel naloga – zapišite je
Slika 1

– Sadržaj –


3.3. Adresa i port vašeg WHM servera

Ulogujte se na svoj WHM nalog preko portala provajdera.

WHM login. Kontrolni panel vašeg hosting provajdera može izgledati drugačije, ali princip je isti
WHM login
Kontrolni panel vašeg hosting provajdera može izgledati drugačije, ali princip je isti
Slika 2

Kada ste kliknuli na logovanje i ušli na WHM, prepišite web adresu servera i broj porta kako su prikazani u browseru.

Adresa WHM servera i broj porta
Adresa WHM servera i broj porta
Slika 3

U ovom slučaju adresa servera je “cp3.fastestserver.co.uk” a port je “2087”.

– Sadržaj –


3.4. Vaši WHM login podaci

Ovo su korisničko ime i lozinka koje koristite za logovanje na WHM (i na cPanel glavnog reseller hosting naloga).

Trebalo bi da su vam poznati – i da su snimljeni u kriptovanom KeePass fajlu.

– Sadržaj –


3.5. Kopiranje WHM Backup solutions na hosting server

Prva stvar koju radimo je download aktuelne verzije WHM Backup Solutions alata (link ka njihovom sajtu).

Možete ovo skinuti i sa BikeGremlin download – tu sam već kreirao potreban direktorijum i “config.php” fajl koji rade sa ovim uputstvom, uz izmene u fajlu poput:

$config['whm_username'] = 'see chapter 3.4';

umesto:

$config['whm_username'] = '';

Ako koristite BikeGremlin fajl, njega samo uploadujete na root direktorijum svog glavnog reseller hosting cPanel naloga. Ako koristite originalni fajl, morate na root-u prvo kreirati direktorijum “whmbackupsolutions” pa tu uploadovati fajl. Ponavljam: na root, ne u “public_html”.
Zapravo, direktorijum možete nazvati kako god želite, ali u ovom uputstvu ćemo koristiti “whmbackupsolutions” pa ako dajete drugo ime, moraćete raditi više izmena ako koristite copy/paste komandi iz ovog uputstva. Takođe – obratite pažnju na velika i mala slova u putanjama, nije sve jedno (“WhmBackupSolutions” nije isto što i “whmbackupsolutions”).

Selektujte root direktorijum (1) i kliknite na upload (2)
Selektujte root direktorijum (1) i kliknite na upload (2)
Ako koristite originalni fajl, prvo napravite “whmbackupsolutions” direktorijum (3), pa u njega uploadujte fajl
Slika 4

Nakon uploada, otpakujte fajl.

Zapišite putanju u koju ste kopirali sve fajlove. U našem primeru to je:
/home/bikegremlin/whmbackupsolutions/
Kod vas bi moglo izgledati kao:
/home/vas-username/whmbackupsolutions/

– Sadržaj –


3.6. Konfigurisanje WHM Backup Solutions

Kako je prikazano na slici 5 ispod: uđite u “whmbackupsolutions” direktorijum (1) i desnim tasterom miša kliknite na “config.php” (2) i izaberite opciju “Edit” (3).

Ako ne koristite BikeGremlin download verziju, moraćete da kopirate fajl “config.php.new” u “config.php” (2a), pošto “config.php” ne postoji u originalnoj verziji.

Opcija za editovanje tekst fajla u cPanel-u
Opcija za editovanje tekst fajla u cPanel-u
Slika 5

U fajlu unesite podatke koji se odnose na vaš server (kako sam objasnio u poglavljima 3.1 do 3.5). Da rezimiramo potrebne podatke:

  1. Adresa, korisničko ime i lozinka za pristup FTP serveru
  2. Putanja do PHP-a vašeg reseller cPanel naloga
  3. Adresa i port vašeg WHM servera
  4. Vaši WHM login podaci
  5. Putanja do WHM Backup Solutions direktorijuma

Fajl “config.php” ima opisne komentare ispred svakog polja, a moja verzija je dodatno pojednostavljena jer ima upute ka poglavljima iz ovog vodiča, kao i većinu vrednosti postavljenih na najčešće korištene za FTP transfer na Hetzner Storage Box.

Editujte polja spram svojih podataka - jednostavno je
Editujte polja spram svojih podataka – jednostavno je
Slika 6

– Sadržaj –


3.7. Kreiranje cron zadataka – automatizacija bekapa

Kratka digresija o cron poslovima – dok ne napišem opširniji članak na tu temu. Ako želite odmah videti primere cron poslova, kliknite ovde da biste preskočili objašnjenje.

Moj pametni telefon ima mogućnost da mu podesim alarm tako da svakog radnog dana (od ponedeljka do petka) u 15:30, zvoni alarm (koji me budi da ne zakasnim kući sa posla 🙂 ).

Kada ovako nešto napravite na Linuks operativnom sistemu, to se zove “cron zadatak” (eng. “cron job”).

  • Šta radi cron posao? U suštini, šta god ga isprogramirate da radi.
  • Kada se pokreće? U koje god vreme zakažete – svakih 10 minuta, svakog sata, svakog ponedeljka, 15. u mesecu u 13:21…

U ovom slučaju ćemo koristiti cron poslove da automatizujemo WHM Backup Solutions bekape. Ovaj softver traži dva cron zadatka:

  1. Cron 1 koji čita “config.php” (poglavlje 3.6) i govori šta sve treba da se bekapuje i gde (na osnovu podešavanja u “config.php” fajlu). Ovo bude gotovo za nekoliko sekundi.
  2. Cron 2 koji pravi bekap i uploaduje ga na zadatu lokaciju. Ako bekapujete veći nalog (preko 2 GB), ovo može potrajati i oko pola sata.

Objasniću kako ovo radi kroz primer:

  • Recimo da smo podesili “config.php” da bekapuje sve cPanel naloge na FTP server.
  • I recimo da imamo 12 cPanel naloga na svom reseller hosting nalogu.
  • Kada se pokrene cron 1, on će reći WHM Backup Solutions programu: “OK, bekapuj ovih 12 cPanel naloga na taj i taj FTP server.”
  • Nakon toga, kada se pokrene cron 2, on će bekapovati prvi cPanel nalog sa spiska, uploadovati ga na FTP i čekirati da je njega uradio. Ako želimo bekapovati i ostalih 11 naloga, cron 2 se mora izvršiti barem još 11 puta. Kada su svi nalozi bekapovani (čekirani), dodatno pokretanje cron 2 posla samo će konstatovati “nemam šta da radim, ćao.”

Zbog čega je ovo važno? Ako imate 50 naloga da bekapujete, i želite bekape svakog dana, morate zakazati cron 2 da se izvrši barem 50 puta u toku dana, tj. pre nego što se cron 1 ponovo pokrene, narednog dana. Dakle cron 2 ćete morati zakazati na svakih 30 minuta, svakog dana.

Pošto ovo sve radi na shared serveru, koji ima puno korisnika, često pokretanje cron poslova koji opterećuju server (kao što to rade backup poslovi) može usporiti rad servera. Zbog toga mnogi hosting provajderi uvode ograničenja broja cron poslova koje možete pokrenuti u danu, ili čak satu (kod HostMantis provajdera je dozvoljen samo jedan cron po satu).

Takođe, ako se cron posao pokrene, a server je prezauzet, on će biti stavljen na listu čekanja, da bi se izvršio čim server “uzmogne.” Tako da će prečesto zakazani cron poslovi praviti listu neizvršenih poslova, i poslednji zadati se neće izvršiti sve dok server ne izvrši sve prethodno zadate.

U ovom primeru, konfigurisaćemo cron 1 da se pokreće svakog ponedeljka, u ponoć i 6 minuta. Cron 2 ćemo zakazati da se pokreće svakog ponedeljka, na pun sat, od 01:06, do 23:06. Ovo je dovoljno za bekapovanje do 23 cPanel naloga. Ako bismo imali više naloga za bekap, morali bismo zakazati cron 2 da se pokreće i ponedeljkom i utorkom, na svaki sat, od 01:06 do 23:06.


Podaci potrebni za kreiranje cron poslova radi automatizovanja bekapa:

  1. Adresa, korisničko ime i lozinka za pristup FTP serveru
  2. Putanja do PHP-a vašeg reseller cPanel naloga
  3. Adresa i port vašeg WHM servera
  4. Vaši WHM login podaci
  5. Putanja do WHM Backup Solutions direktorijuma

Na osnovu ovih podataka, kreiraćete svoja dva cron posla.

Cron posao 1:

/php-putanja-vaseg-servera/ -q /putanja-whmbackupsolutions-direktorijuma/whmbackup.php generate

U ovom primeru:

/opt/cpanel/ea-php74/root/usr/bin/php -q /home/bikegremlin/whmbackupsolutions/whmbackup.php generate

Cron posao 2:

/php-putanja-vaseg-servera/ -q /putanja-whmbackupsolutions-direktorijuma/whmbackup.php

U ovom primeru:

/opt/cpanel/ea-php74/root/usr/bin/php -q /home/bikegremlin/whmbackupsolutions/whmbackup.php

Uradite copy/paste ovih cron poslova u tekst editor i izmenite ih da odgovaraju vašim putanjama.
To će vam trebati u nastavku.

Zakazivanje cron poslova se radi preko cPanel “Cron Jobs” alata.

cPanel zakazivanje Cron poslova - jednim klikom :)
cPanel zakazivanje Cron poslova – jednim klikom 🙂
Slika 7

Kada uđete u “Cron Jobs” meni, konfigurisaćete željene poslove.

WHM Backup Solutions cron posao 1, zakazan da se pokreće ponedeljkom u 00:06
WHM Backup Solutions cron posao 1, zakazan da se pokreće ponedeljkom u 00:06
Slika 8
WHM Backup Solutions cron posao 2, zakazan da kreće na 6 minuta svakog sata, počev od 01 do 23 časa, svakog ponedeljka
WHM Backup Solutions cron posao 2, zakazan da kreće na 6 minuta svakog sata, počev od 01 do 23 časa, svakog ponedeljka
Slika 9

Nakon unošenja cron posla i klika na “Add New Cron Job,” taj posao će se pojaviti na spisku kreiranih poslova:

cPanel lista kreiranih cron poslova, sa osnovnim podacima za svaki cron
cPanel lista kreiranih cron poslova, sa osnovnim podacima za svaki cron
Slika 10

Ako imate više od 23 cPanel naloga za bekap, možete staviti 1-3 u polju “Weekday,” pa će se cron 2 pokretati od ponedeljka do srede, na svakih sat vremena.

Je l’ bilo teško? Ima dosta koraka, zato sam sve i zapisao u uputstvu, ali mislim da nije ništa teško.

Kada se bekapi naprave, pokušajte restauraciju naloga iz bekapa, kako biste potvrdili da sve radi – po mogućnosti u staging okruženju, ne na produkcionom sajtu.

– Sadržaj –


4. Rešavanje problema

Program WHM Backup Solutions pravi lepe log fajlove u “logs” pod-direktorijumu instalacije programa. Za razliku od njega, plaćeni WHM Easy Backup je puno manje pregledan i teže je iskopati logove (barem se ja nisam mogao snaći).

Lokacija log fajlova WHM Backup Solutions
Lokacija log fajlova WHM Backup Solutions
Slika 11

Izveštaji, ili problemi sa bekap poslovima će se nalaziti u bekap log fajlovima (2), dok će problemi sa podešavanjima u “config.php” biti prikazani u “system.log” fajlu.

– Sadržaj –


5. Problemi sa SFTP konekcijom

Bez problema koristim SFTP za konekciju na Hetzner Storage Box preko FileZilla FTP klijenta. Međutim, nisam uspeo namestiti WHM Backup Solutions (ni WHM Easy Backup) da se konektuje preko SFTP-a. Primer izveštaja o grešci:

WHM Backup Solutions (https://whmbackup.solutions) - V1.5
2021-08-15-18:12 - (johnsmith) ERROR: The password that you provided is not correct,
or the SSH key is not permitted access:
ssh: connect to host u273500.your-storagebox.de
port 23: Network is unreachable at /usr/local/cpanel/Cpanel/API/Backup.pm line 182.

Ako imate rešenje, ili link ka boljem tutorijalu, iskoristite polje za komentare u dnu ove stranice da to podelite. 🙂

– Sadržaj –


6. Zaključak

Svaki sistem će pre ili kasnije otkazati, ili biti hakovan (zbog čega će svaki sajt biti hakovan). Bekapi su jedan od načina da se šteta minimizira.

Automatizovani bekapi su dobra stvar zato što vam štede vreme i cimanje.

Važna napomena:
Nisam podesio skriptu za brisanje starih bekapa. WHM Backup Solutions i to omogućava. Međutim, ja redovno skidam bekape na HDD skladište (druga kopija) i premeštam ih iz direktorijuma koji vidi hosting server, u direktorijum koji vidim samo ja (FileZilla drag & drop objašnjen).

Na ovaj način se teram da redovno proveravam rade li automatizovane bekap procedure (pored svih logova i ostalog).

Ako to ne radite, podesite automatsko brisanje fajlova, inače će vam se skladište pretrpati.

– Sadržaj –


Molim Vas da koristite BikeGremlin.net forum za sva pitanja i komentare.

Ako ste primetili neku grešku u članku, ili informacije koje nedostaju - molim Vas da mi na to skrenete pažnju komentarom na BikeGremlin forumu.
Na forumu možete pisati anonimno (stavite bilo koje ime/nadimak pri registraciji), ali mislim da je dobro da sve dopune i ispravke članaka budu javno dokumentovane (čak i ako njihov autor izabere da ostane anoniman).

Skip to content