Backup na serwerze FTP

Jak utworzyć backup na serwerze FTP

W tym poradniku omówię jak samemu wykonać automatyczny backup na serwerze FTP ważnych danych. Przy pomocy darmowych programów które możemy wykorzystać komercyjnie we własnej firmie.

Prowadząc własną działalność musimy się liczyć z tym że w przypadku, awarii komputera, pożaru lub kradzieży stracimy wszystkie nasze cenne dane. W wyniku tego narażeni jesteśmy na straty, przywracanie danych z dokumentów, poczty itp. Może okazać się bardzo czasochłonne bądź też niemożliwe.
Aby się zabezpieczyć i zminimalizować straty oraz czas potrzebny do odtworzenia utraconych danych. Musimy zabezpieczyć to co dla nas jest ważne.

Możemy to zrobić na kilka sposobów:

  1.  Kopiować dane na dysk zewnętrzny, pamięć flash itp… . Jest uciążliwe, musimy pamiętać o wykonywaniu kopii, najlepiej trzymać dysk w ognioodpornym sejfie albo poza miejscem gdzie znajdują się nasze dane.
  2.  Kopiować dane na kasety. Musimy zakupić nagrywarkę, software do wykonywania backupu i nośniki.
  3. Kopia będzie się wykonywała automatyczne ale musimy pamiętać o zmianie kaset, przy bardziej zaawansowanych systemach kasety mogą być zmieniane automatycznie. Mimo wszystko trzeba je zabezpieczyć przed uszkodzeniem np. w przypadku pożaru, kradzieżą itp…
  4. Utworzyć backup na serwerze FTP poza firmą u dostawcy usług hostingowych.
    Ten właśnie sposób wykonywania kopii zapasowej zostanie omówiony w tym poradniku.

Przyjmijmy założenie że mamy kilka komputerów w firmie. Firma posiada stronę internetową. Jeżeli mamy wykupiony hosting na stronę internetową, konto pocztowe to zapewne też mamy jakieś konto FTP które możemy wykorzystać do przechowywania kopii w chmurze. Dane przechowujemy poza firmą i mamy do nich dostęp wszędzie gdzie mamy dostęp do Internetu.

Ustalamy algorytm według którego będzie wykonywany backup na serwerze FTP, poniżej przykład:

  1. Na jednym z komputerów lub serwerów tworzymy miejsce gdzie będzie składowana kopia lokalna. (w przypadku awarii któregoś z komputera mamy szybki dostęp do backupu). Zbieramy dane w jednym miejscu aby potem wysłać je do chmury czyli na naszym serwerze FTP.
  2. Definiujemy zadanie które będzie codziennie po godzinach pracy archiwizowało dane które będziemy chcieli zabezpieczyć.
  3. Definiujemy zadanie które będzie po wykonaniu kopii lokalnej, umieszczało backup na serwerze FTP.
  4. Tworzymy zadanie uruchamiane okresowo i usuwające stare kopie z archiwum lokalnego, aby zapobiec zapełnieniu się dysku.
  5. Opcjonalnie tworzymy zadanie które będzie wysyłało raport mailem o naszej kopii.

Darmowe programy przydatne do tworzenia kopii. Programy można używać komercyjnie.

  1. 7zip – archiwizator który spakuje nam kopiowane pliki aby zajmowały mniej miejsca oraz stworzy np. 1 plik archiwum zamiast kilkunastu.
    Program można pobrać ze strony http://www.7-zip.org/
  2. WinSCP – klient FTP który możemy uruchomić z linii poleceń lub za pomocą pliku wsadowego. Program można pobrać ze strony https://winscp.net/eng/download.php
  3. SwithMail – program do wysyłania maili, można go uruchomić z linii poleceń.
    Program do pobrania z https://sourceforge.net/projects/swithmail/
    Jako że program można używać bez instalacji, uruchamiając z pliku .bat niektóre skanery antywirusowe mogą kwalifikować jako zainfekowany.

Tworzenie archiwum lokalnego:

Do utworzenia archiwum lokalnego możemy użyć darmowego archiwizera 7zip. Za pomocą notatnika tworzymy plik z rozszerzeniem .cmd
poniżej przykład gdzie kopiujemy wszystkie pliki z dysku F:\ z rozszerzeniem doc czyli dokumenty word. archiwum zostanie utworzone na dysku E:\ i będzie miało w nazwie datę kiedy zostało utworzone i będzie wyglądało np.:
2018-02-09_dokumenty.zip

cd C:\Program Files\7-Zip
7z.exe a E:\"%Date%_dokumeny".zip F:\*.doc

Następnie tworzymy z harmonogramie zadań Windows, zadanie które będzie uruchamiało się codziennie po godzinach pracy np.: o godzinie 20:00 i uruchamiało nasz utworzony skrypt

Harmonogram zadań krok pierwsy
Harmonogram zadań krok 2
Harmonogram zadań krok 3



Wysyłanie kopii archiwum na serwer FTP

Do wysłania archiwum na serwer ftp użyjemy programu WinSCP
Tworzymy plik wsadowy który uruchomi WinSCP, oraz plik tekstowy z komendami do wykonania przez WinSCP. Połączy się z serwerem FTP, usunie z serwera stare kopie i zrobi synchronizację wskazanych katalogów.
Poniżej przykładowe skrypty:

  • Następnie przykładowa zawartość pliku cmd, którym uruchamiamy WinSCP z parametrem wskazującym plik zwierający polecenia do wykonania przez program.

cd C:\Program Files (x86)\WinSCP
WinSCP.com /script=C:\backupscripts\backup.txt

  • Dlej przykładowa zawartość pliku backup.txt zawierający polecenia dla WinSCP. Zamiast user wpisujemy nazwę swojego użytkownika, password zastępujemy hasłem do zalogowania, nazwahosta.pl zastępujemy adresem swojego serwera ftp.

open ftp://user:password@nazwahosta.pl/
cd /backup/
rm *.zip<7D
synchronize -filemask="*.zip*>1D" remote E:\ /wapro
close
exit

open ftp://user:password@nazwahosta.pl/ – otwieramy sesję i łączymy się z serwerem.
cd /backup/ – przechodzimy do folderu do którego będziemy wgrywać pliki, w tym przypadku folder nazywa się backup
rm *.zip<7d – usuwamy pliki z rozszerzeniem zip, starsze niż 7 dni
synchronize -filemask=”*.zip*>1D” remote E:\ /wapro – synchronizujemy foldery, dla plików z rozszerzeniem .zip, nowsze niż 1 dzień z folderem w którym znajduje się kopia, w tym przykładzie jest to zawartość folderu zmapowanego pod literą E:\ z folderem /wapro na serwerze FTP
close – zamykamy sesję
exit kończymy działanie programu WinSCP

Tworzymy harmonogram zadań Windows uruchamiany po utworzeniu kopii lokalnej. Harmonogram inicjuje skrypt cmd. Zadanie jest uruchamiane od poniedziałku do piątku, dzięki temu zmniejszamy miesięczny transfer plików wysyłanych na serwer FTP.

Wysyłanie raportu mailem

Jeżeli chcemy mieć kontrolę naszej kopii na serwerze FTP w internecie, tworzymy zadanie w harmonogramie zadań które uruchamiamy np. raz w tygodniu.
Do tworzenia raportu korzystamy z programu WinSCP przy pomocy którego łączymy się tak jak poprzednio do naszego serwera i sprawdzamy zawartość katalogu z plikami naszej kopii. Podczas łączenia tworzony jest log z przeprowadzonej operacji.

  • Aby tworzyły się logi  po uruchomieniu WinSCP wchodzimy w Narzędzia->Preferencje, wybieramy z listy Dziennik, zaznaczamy Włącz dziennik na poziomie, ustawiamy ścieżkę i nazwę pliku w którym log będzie zapisywany.
    Wybieramy opcję nadpisz, dzięki temu za każdym razem będzie powstawał nowy plik o tej samej nazwie, a poprzedni będzie nadpisywany.
Konfiguracja WinSCP, backup na serwerze FTP
  • Analogicznie jak poprzednio tworzymy plik txt z poleceniami dla WinSCP.
    Wykonujemy modyfikację aby program się łączył do naszego serwera i sprawdzał zawartość folderu z kopią.

open ftp://user:password@nazwahosta.pl/
cd /backup/
ls
close
exit

  • Utworzony log wysyłamy mailem przy pomocy programu SwithMail.
    Program można uruchomić z linii poleceń jako parametry podać wszystkie dane do logowania i wysłania maila lub przy pomocy kreatora utworzyć plik z zapisanym wszystkimi parametrami.
SwithMail opcje
SwithMail konfiguracja krok 1
SwithMail konfiguracja krok 2
SwithMail konfiguracja krok 3

Do skryptu uruchamiającego WinSCP i sprawdzającego zawartość serwera FTP dodajemy wpis (jedną linię poleceń):

C:\backupscripts\SwithMail.exe /s /x "C:\backupscripts\SwithMailSettings.xml"

gdzie wpisujemy własną ścieżkę do lokalizacji programu i pliku z konfiguracją.