W czasach gdy zagrożenie programami szyfrującymi (ransomware) jest wysokie, warto wykonywać kopię bezpieczeństwa. Kopię najlepiej robić na nośniki, które są odizolowane od naszego komputera lub serwera.
Wykonanie kopii na tym samym dysku, lub serwerze z kilkoma dyskami byłoby nierozważne, gdyż w razie awarii, lub też wcześniej wspomnianego szyfrowania danych dla okupu zostajemy z niczym. Istnieje wiele firm oferujących swoje rozwiązania do „bekapu”. Tutaj jednak przestawimy jak taką kopię wykonać na własny serwer FTP bez dodatkowych kosztów (większość firm posiada stronę www, a więc i serwer prawdopodobnie w 90% niewykorzystywany, dlaczego by więc nie zagospodarować takiej przestrzeni?)
Będzie nam potrzebny:
- Dostęp do FTP czyli login, hasło i adres hosta do którego będziemy się łączyć (może być IP) – oraz informacja, czy serwer obsługuje FTPS lub SFTP
- Dedykowane konto FTP ograniczone do katalogu z kopiami (w panelu hostingu utwórz osobnego użytkownika FTP z dostępem tylko do
/kopie) – dzięki temu wyciek tego hasła nie daje dostępu do plików strony - Zainstalowany program WinSCP
- Zlokalizowane dane które chcemy przesłać na FTP
Lećmy od końca…
W moim przypadku chciałbym zabezpieczyć archiwa programu do wystawiania faktur. Archiwizację staram się wykonywać przy każdym wyłączaniu programu (z resztą sam program mi o tym przypomina). Archiwa zapisuję na dysku F w folderze TECH-SAS a więc ścieżka do plików wygląda mniej więcej tak : F:\TECH-SAS

Kolejna sprawa to program WinSCP, który jest do pobrania tutaj -> https://winscp.net/eng/download.php
Pobieramy, instalujemy, gotowe.
WinSCP w moim przypadku zainstalował się w katalogu : C:\Program Files (x86)\WinSCP
Teraz możemy sprawdzić czy nasze do FTP są właściwe. Logujemy się uzupełniając wymagane dane.

UWAGA
Kopie trzymaj POZA katalogiem public_html. Pliki w public_html (lub katalogu ze stroną) są domyślnie dostępne z Internetu pod zwykłym adresem https://twojadomena/kopie/archiwum.zip – każdy, kto zgadnie nazwę pliku, pobierze Twoje dane. Zamiast tego utwórz katalog obok, np. /home/uzytkownik/kopie. Jeśli serwer nie pozwala na katalog poza docrootem – w katalogu z kopiami umieść plik .htaccess z linijką Require all denied (Apache) – ale to rozwiązanie awaryjne, słabsze. Sugeruję także zaszyfrować dane (większość programów pozwala już zabezpieczyć hasłem swoje archiwa).
Mamy już przygotowane lokalizacje, czas to wszystko jakoś spiąć..
Napiszemy sobie mały skrypt. ale najpierw (dla zachowania porządku) utwórz nowy folder gdzieś na dysku – będziemy w nim trzymać skrypty. Ja zrobiłem na pulpicie i nazwałem go FTP_backup w tymże folderze tworzę nowy dokument tekstowy i nazywam go dowolnie. Ja nazwałem go skrypt.txt a w nim:
open ftp://user:pass@host cd /home/techsas/kopie/ rm *.zip>7D synchronize -filemask="*.zip*<3D" remote F:\TECH-SAS\ /public_html/kopie
- Zastępujemy user, pass i host swoimi danymi
- Na zdalnym serwerze przechodzimy do katalogu w którym mają być kopie
- Usuwamy pliki z rozszerzeniem .zip starsze niż np 7 dni (żeby nie zapchać pojemności)
- Wysyłamy na serwer pliki zip nie starsze niż 3 dni z lokalnego katalogu na zdalny (pliki które już istnieją nie zostaną wysłane więc nie ma co się martwić o transfer)
Teraz zróbmy drugi plik z rozszerzeniem .bat np ftp.bat a w nim:
cd C:\Program Files (x86)\WinSCP WinSCP.com /script=C:\Users\Tadeusz\Desktop\FTP_backup\skrypt.txt
- Przejdź do katalogu z WinSCP
- Uruchom wskazany skrypt
Można powiedzieć, że gotowe. Aby przesłać archiwa na FTP wystarczy odpalić plik ftp.bat
Dla wygody można też utworzyć sobie harmonogram, aby robił to za nas.
