Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Windows: синхронизация файлов и папок по сети или резервное копирование кратко

Практика



Итак, у нас есть задача: синхронизировать некоторый набор папок с лежащими в них файлами. Причем задача стоит именно так:

  • Синхронизация должна поддерживать передачу файлов по сети - т.е., например, с одного компьютера на другой;
  • Синхронизация должна уметь копировать только новые файлы, не передавая заново уже существующие;



Из своей практики я могу предложить 2 пути: ROBOCOPY и XCOPY.



Путь первый - ROBOCOPY



Данная утилита идет из коробки в Windows 7 и Server 2008. На более старых ОС ее может не оказаться (например, на XP и Server 2003 из коробки ее точно нет). В таком случае можно скачать и установить Windows Server 2003 Resource Kit Tools: вот отсюда

http://www.microsoft.com/download/en/details.aspx?id=17657

. В этот тулкит, кроме всего прочего, входит наш инструмент.


Итак, вот пример использования данной утилиты:

robocopy D:\исходная_папка \\192.168.0.1\целевая_папка /E /Z /COPY:TDASO /DCOPY:T /M /R:2 /W:5

В данном примере:
Мы копируем папку "исходная папка", находящуюся на локальном диске D:
Мы копируем эту папку на компьютер \\192.168.0.1 в папку "целевая папка"
/E : Мы копируем все подпапки и файлы
/Z : Включаем поддержку докачки (на случай обрыва связи)
/COPY:TDASO : Копируем все атрибуты и ACL прав доступа NTFS (но не копируем атрибуты аудита)
/DCOPY:T : Копируем время создания папок
/M : Копируем только файлы с установленным атрибутом "A - Архивный" и сбрасываем этот атрибут, что позволяет нам копировать только измененные файлы.
/R : Количество повторных попыток копирования файла в случае, если копирование не удалось. Причем "не удалось" срабатывает и в том случае, если доступ к файлу закрыт. По-умолчанию = 1 миллионы, т.е. бесконечно, потому копирование благополучно встанет на первом же файле, к которому не будет доступа.
/W : Задержка в секундах между попытками копирования. По-умолчанию = 30 секундам.

Заметка. Очень рекомендую задавать вручную параметры /R и /W, иначе при автоматической синхронизации она попросту зависнет, встретив на своем пути ошибку доступа.


Много больше опций Вы можете почерпнуть из хелпа:

robocopy /?


Чем эта утилита хороша по сравнению с XCOPY:

  • Она умеет работать с файлами, длина имени которых больше 256 символов
  • Она умеет делать зеркало, т.е. чистую синхронизацию, при которой файлы, удаленные в папке-источнике, будут удалены и в папке назначения.


Для того, чтобы зеркалировать папки (т.е. удалять в папке назначения все файлы, которые более не существуют в папке-источнике) - нужно добавить ключ "/PURGE":

robocopy D:\исходная_папка \\192.168.0.1\целевая_папка /E /Z /COPY:TDASO /DCOPY:T /M /PURGE


А вот несколько примеров запуска этой утилиты

Скопировать файлы, измененные за последние 5 дней (исключая сегодня):

robocopy D:\исходная_папка \\192.168.0.1\целевая_папка /maxage:5 /minage:1


Переместить все файлы (не копировать):

robocopy D:\исходная_папка \\192.168.0.1\целевая_папка /move /e


Копировать только указанные файлы по шаблону

robocopy D:\исходная_папка \\192.168.0.1\целевая_папка *.xls *.doc *.txt /e

Windows: синхронизация файлов и папок по сети или резервное копирование


Путь второй - XCOPY



Данная утилита более старая, чем ROBOCOPY, и имеет меньше возможностей. Так, она не поддерживает пути с длинной имени более 256 символов (как это не умело делать FAT) и она не умеет делать зеркалирование. Более того, у нее отмечаются проблемы с копированием прав доступа ACL NTFS, как минимум - при копировании файлов на Samba-сервер.

Вот пример ее запуска:

xcopy "d:\исходная_папка" \\192.168.0.1\целевая_папка /D /E /C /I /H /R /K /Y /F /O


Здесь мы:

  • Копируем все файлы из директории "исходная папка", находящейся на диске "D:"
  • Копируем все файлы на компьютер \\192.168.0.1 в папку "целевая папка"
  • /D : Копируем только измененные файлы (по дате изменения)
  • /E : Копируем подкаталоги, включая пустые
  • /C : Игнорируем ошибки, если они возникли во время копирования, и продолжаем копирование
  • /I : Целевой объект - это папка
  • /H : Копировать скрытые и системные файлы
  • /R : Перезаписываем файлы, предназначенные только для чтения
  • /K : Копируем атрибуты, такие, как "только для чтения", "архивный", "системный", "скрытый"
  • /Y : Не спрашивать подтверждение на перезапись файлов
  • /F : Вывод полных имен исходных и целевых файлов (иначе - только имена файлов, без папок)
  • /O : Если установлен - копировать так-же ACL NTFS атрибуты доступа


По моему личному опыту ROBOCOPY лучше справляется со своей работой, в особенности, если Вы копируете файлы файловой помойки, куда лазят несколько сотен людей - бардака там бывает достаточно и длинна файловых имен с путем нередко больше 256 символов.

Rsync для линукс

Для линукс сущетвует приложение Rsync кодом, которое можно использовать для синхронизации файлов и папок с локального компьютера на удаленный и наоборот. Примечательная особенность Rsync - возможность передавать зашифрованные файлы с помощью SSH и SSL. Кроме того, здесь передача файлов выполняется в один поток, в отличие от других подобных программ, создающий отдельный поток для передачи каждого файла. Это увеличивает скорость и убирает дополнительные задержки, которые становятся проблемой при передаче большого количества маленьких файлов.

Windows: синхронизация файлов и папок по сети или резервное копирование

Вау!! 😲 Ты еще не читал? Это зря!

создано: 2017-05-10
обновлено: 2024-11-12
1918



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Операционные системы и системное программировние

Термины: Операционные системы и системное программировние