Tag Archives: robocopy

Synchronizacja plików na serwerze

Dobrymi programami do synchronizacji plików na serwerze są m.in. lftp, mirror, WinSCP, robocopy. Poniżej przedstawiony jest przykład użycia oprogramowania robocopy (skrypt):

@echo off
REM zamapowanie zasobu
net use \\10.1.1.124\KOPIE\Katalog_docelowy /u:user password /Persistent:no
REM synchronizacja plikow
robocopy D:\Katalog_zrodlowy \\10.1.1.124\KOPIE\Katalog_docelowy /e /purge /MIR /FFT /W:2 /R:3 /XJ /NP >> \\10.1.1.124\KOPIE\backup.log
REM odmontowanie zasobu
net use /d \\10.1.1.124\KOPIE\Katalog_docelowy , gdzie:net use /d \\10.1.1.124\KOPIE

Poniżej opis użytych parametrów:
/FFT – zakładanie czasu plików w systemie FAT. Jeśli nie umieścimy tego parametru, program i tak skopiuje pliki na server z systemem Linux.
/e – kopiowanie subfolderów, również pustych
/purge – usuwanie plików i folderów w folderze docelowym, które nie są już obecne w folderze źródłowym,
/MIR – tworzy odbicie lustrzane katalogów – to chyba najważniejszy parametr ponieważ dzięki niemu nie kopiujemy za każdym razem wszystkich plików, tylko są one porównywane i tylko zmienione pozycje będą przegrane (ostrzeżenie: usunięte pozycje będą także usunięte z docelowego katalogu). Działanie podobne do /purge
/W:2 – czas oczekiwania pomiędzy kolejnymi próbami (domyślnie 30s)
/R:3 – liczba ponownych prób w przypadku niepowodzenia tworzenia kopii (domyślnie 1 milion)
>> – dopisywanie do istniejącego logu. Pojedynczy znak > skasuje stary log i utworzy nowy. Lepiej więc używać znaku >>
/XJ – wyklucza punkty połączenia – domyślnie robocopy podąża za linkami, więc kopiując skrót z folderu, przekopiuje również plik z innego folderu, do którego prowadzi ten link.
/NP – nie pokazuj progresu

Dla ukrycia loginu i hasła można plik wsadowy .bat przekształcić w plik .exe za pomocą programu Bat To Exe Converter (http://www.f2ko.de/en/index.php)

 

UWAGA!! Utworzony skrypt należy nazwać inaczej niż robocopy.cmd lub robocopy.bat, ponieważ skrypt uruchomiony z pliku o tej nazwie wpadnie w pętlę (będzie wywoływał sam siebie).