Синхронизация папок и прав NTFS с помощью robocopy


В данной статье попытаюсь описать свое решение такой достаточно распространенной задачи, как синхронизация содержимого двух папок, расположенных на разных серверах. Допустим, у вас есть 2 сервера: buh1 и buh2, в конце дня все измененные файлы должны копироваться с одного сервера на другой, кроме того все права доступа NTFS должны остаться теми же самыми, что и у исходных файлов.

Мое решение основываемся на использовании утилиты robocopy. Как я уже писал ее можно использовать для организации системы резервного копирования и синхронизации файлов.

Сначала необходимо убедиться, что на обоих серверах программа robocopy.exe находится по одному и тому же пути (обычно это каталог C:Windowssystem32).

Для осуществления схемы синхронизации каталогов, на первом шаге мы мапим (диск Z:) на первый сервер папку с другого файлового сервера (предварительно необходимо убедиться, что буква диска не занята). Далее вызываем robocopy, которая осуществляет синхронизацию файлов.  Параметр команды “/sec” – говорит о том, что необходимо копировать и права доступа NTFS на файлы. Кроме того, скрипт создает лог, который можно использовать для дальнейшего разбора полетов.

Скрипт выглядит следующим образом:

net use z: /delete
 
net use z: \buh2data
 
robocopy.exe C:data z: /sec /S /XO /R:3 /W:5 /LOG:C:ScriptLOGSsync.txt

Осталось создать bat файл и новое задание в планировщике Windows.

Вот и все, так просто и быстро без использования сторонних утилит (ведь в Windows 2008 Server уже включена по-умолчанию утилита robocopy), мы реализовали систему синхронизации двух папок с сохранением прав доступа NTFS.

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *