Как синхронизировать две папки на разных компьютерах. Как решить задачу синхронизации файлов

Долго пробовал и работал с разными программами. Требовалось для синхронизации данных с компов и внешних жестких. Сначала в ручном варианте, по мере работы задача усложнялась, как и увеличивалось количество синхронизируемых папок и файлов и способов синхронизации. С чего начинал и до чего дошел:
1). Microsoft SyncToy 2.1.
"+" - бесплатная, простая, довольно удобная
"-" - несколько раз скидывалась и начинала синхронизировать не что нужно и не в том направлении (очевидно было связано с тем, что увеличивалось количество и объем синхронизируемой информации). В очередной раз, после подобного глюка, долго читал, искал и в итоге остановил свой выбор на самописных программах
2) самый простой вариант xStarter - кстати позволяет делать много чего и опять же из написанных действий / скриптов и т.д. собрать собственно сразу же exe файл, который можно при желании сделать и службой. Однако намучившись с переписыванием, допиливанием и прочим (у меня просто много "планов" синхронизации направлений и мест получения и т.д.) перешел на Allway Sync.
Кстати dropbox и т.д. не подходили по причине - не люблю большого брата и параною в себе
3) Allway Sync.
"+" - Все хорошо, удобно и т.д. Что особенно понравилось это синхронизации между одним источником и несколькими местами "получения". Работает как часы, НО
"-" - Не работает (по крайней мере когда я с ней работал) по потокам, а вернее по одному потоку по очереди, то бишь есть, например, несколько заданий: синхронизировать несколько разных, не связанных папок с жесткого диска на компе на внешний жесткий, и в итоге она запускает все это параллельно, в итоге если б все было в один поток, то закончилось бы все намного быстрее, так же это привело к катастрофическим результатам, из-за которых потом пришлось отказаться от нее, об этом будет написано далее; пару раз глюкнула, но это было не критично, критично станет когда объем будет большой. И в итоге когда я дошел до того, что в одной из папок стало под 150,000 файлов и с объем папки не маленький, то Allway Sync просто не выдерживал, когда запускал в автоматическом режиме при подключении жёсткого диска синхронизацию. Пришлось задания запускать вручную и по очереди. Жутко не нравилось но терпел ровно того момента, пока он не перестал синхронизировать просто одну папку. В итоге перешел к GoodSync.
4) GoodSync. Долго не мог привыкнуть к нему, который казался после Allway Sync (который был понятен на интуитивном уровне) жутко не удобным, не информативным и т.д. Привыкание шло долго, и не всегда удачно. Не нравилось, что только одни источник и одно место-получатель. В Allway Sync былы разнонаправленные "многоконечные" задания, тут же пришлось дробить / дублировать задания. Из сразу замеченных плюсов понравилось то, что теперь все задания выполнялись по очереди. Долго не мог найти (если не через мастер делать задания) привязку к конкретному внешнему жесткому диску. По некоторым настройкам нет нормального описания, и не всегда понятно что делают. Некоторые вещи беспокоят до сих пор, но ровно из-за того, что похоже пока сам не настроил, но времени на тесты терять не охота, и они абсолютно не критичные. Так же удобная вещь для копирования большого количества данных, когда синхронизация была не нужна или не применялась, а скопировать надо быстро и данные почти одинаковые. Со временем очень привык и стал нравится, ошибок не допускает, количество файлов обрабатывает без проблем и пока еще не ошибался (уже пару лет), есть возможность "быстрого" анализа, сверка md5,копирование атрибутов и т.д. В общем мой выбор - GoodSync

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

Нажмите, чтобы раскрыть...

1) Вопрос - может быть срабатывает фильтр? Он есть в общих настройках программы (общий для всех) и так же есть в каждом задании отдельно свой.
2) Так же при сравнении, если есть антивирус, он так же блокирует файлы, если считает, что с вирусом или подозрительный
3) Поставь настройку "Копировать заблокированные файлы"
У меня никаких проблем с синхронизацией с использованием GoodSync ни разу не было. Но вот с настройками поразбираться пришлось. Кстати по этой программе есть довольно вменяемый мануал с FAQ. И чем замечал, что он часть данных не синхронизировал? И попробуй еще включи md5. Будет ощутимо дольше, но зато проверишь и плюс этот способ надежней. По крайней мере я думаю встречал такое - что открываешь фотографию, а она открывается только на половину, т.к. "протухла". От этого при синхронизации по крайней мере обезопасишься. А то у нас был случай - бэкапился архив базы данных, а в итоге файл оказался битый (т.к. просто копировался, вернее записался, неправильно)

Хотя без ложки дегтя конечно же не обошлось. Программа платная, стоит 600 рублей. Бесплатная же версия после 30 дней использования допускает синхронизацию всего лишь 100 файлов и 3 заданий.

Вообще конечно в случае хорошего ПО 600 рублей не жалко. С другой стороны я все-таки попытался найти что-нибудь аналогичное за просто так. 🙂

И нашел. — бесплатное программное обеспечение для синхронизации файлов и каталогов.

Использует инновационные алгоритмы чтобы синхронизовать Ваши данные между персональными компьютерами, ноутбуками, USB флэш драйвами и т. д. Allway Sync соединяет в себе железную надежность и чрезвычайно простой пользовательский интерфейс.

Тут интерфейс не так приятен, да и сам сайт на русский язык переведен довольно скверно. Также программа не умеет синхронизировать данные по FTP, WebDAV или SFTP. Зато нужной функции синхронизацией с USB флешкой она обладает. Делает это не хуже, чем GoodSync и при этом совершенно бесплатно.

Инструкции на сайте я не нашел. Поэтому расскажу где и что надо настроить, чтобы заработала автоматическая синхронизация и о программе можно было бы не вспоминать.

1. После запуска программы будет создано новое задание. Соотственно надо выбрать папки для синхронизации. В моем случае это "C:\Workfiles" в левой части и "Z:" в правой. Почему именно "Z" расскажу позже.

2. Можно провести ручной анализ и первую синхронизацию, нажав соответствующие кнопки, дабы убедиться, что все корректно работает.

  • При подключении съемного устройства
  • Через определенный промежуток времени

Соответственно синхронизация будет происходить в тот момент, когда вы вставите флешку в компьютер, а также Allway Sync будет постоянно отслеживать файловые изменения каждый раз по прошествии указанного времени со времени последней проверки. Если файлы окажутся разными, то начнется синхронизация.

Есть там и еще несколько вариантов времени синхронизации, выбираете те, что удобны лично вам. На самом деле уже одной включенной опции "При подключении съемного устройства" будет вполне достаточно.

Нажимаем "OK" для сохранения настроек.

4. Чтобы программа загружалась каждый раз при включении компьютера в вверхнем меню выбираем "Вид -> Настройки… -> Приложение" и ставим галочку "Запуск приложения в панели задач при включении компьютера".

Вот настройка и завершена. А мне тут принесли какой-то документ на другой флешке. Так, что тут у нас. Опа! Все мои рабочий сверхсекретные файлы синхронизировались с чужой флешкой!

Чтобы этого не происходило и надо сменить букву диска вашей рабочей флешки. У меня это "Z", хотя диск "Х" тоже неплохо звучит. 🙂

Для смены буквы диска вставьте в компьютер вашу флешку, с которой будет производиться синхронизация. Затем откройте "Пуск -> Панель управления -> Администрирование -> Управление компьютером -> Управление дисками". Найдите там флешку, кликнете правой кнопкой, выберите пункт "Изменить букву диска или путь к диску" и выберите любую букву, но лучше ближе к концу списка.

Теперь Windows каждый раз будет назначать вашей флешке именно эту букву и синхронизация будет происходить только с нужным устройством, а не с любым.

После этого через меню Allway Sync "Файл -> Экспортировать" можно сохранить настройки программы и заданий, чтобы импортировать их на других компьютерах, с которыми требуется синхронизация.

Теперь за важные файлы я не переживаю. Они продублированы 3 раза: на флешке, на домашнем компьютере и на рабочем ноутбуке. К тому же данные синхронизированы и у меня всегда есть актуальная копия. Так что ни потеря флешки, на смерть жетского диска, ни системные сбои мне не страшны! 🙂

Примерно два года назад я родил проект- небольшая программа клиент, которая ставится на любой девайс и просто синхронизирует файлы.
Например можно было задать, что документы будут синхронизироватся между домашним и рабочим компьютером. Музыку и книги между домашним компом и телефоном. Резервное копирование между домашним компом, рабочим компом и сервером. Также эта программа могла контролировать последующее распространение любого файла в системе. Т.е вы как владелец, могли всегда узнать историю файла: копирование на флешку, на другой компьютер, по «электропочте» и т.д.

Тогда я почти уже получил финансирование, но инвестиционный фонд с которым я работал в последний момент потребовал серьезную долю в бизнесе. И я решил что овчинка выделки не стоит. А потом как-то стало не до этого.

Да, скажете вы, есть облачные хранилища и зачем оно нужно когда есть Яндекс.Диск, Dropbox и куча облачных сервисов хранения файлов. Ну просто это не всегда приемлемо и удобно. Минусы:
1. Вы доверяете свои файлы третьей стороне без всяких гарантий.(Я не параноик, но вы ведь не оставите в таком хранилище ваши интимные данные)
2. Для доступа к ним нужен интернет. А это в России до сих пор не всегда возможно с необходимой скоростью.

Свято место пусто не бывает и компания BitTorrent выпустила нечто подобное, но в урезанном виде. Их программа просто синхронизирует файлы между разными платформами и системами как только они вышли в интернет или оказались внутри одной подсети. К сожалению нельзя гибко настраивать правила синхронизации, зато есть отличный клиент который администрируется через либо через нативный интерфейс(WIndows, MAC OS X, Android, iOS), либо через веб интерфейс(*NIX).

Я больше не лезу за фотками, документами и музыкой на мобилу и не лезу на сервер чтобы забрать редко обновляемый бэкап.
В домашнем компьютере есть несколько папок:
Телефон
Сервер
Общая
Авто

Чтобы закинуть что-то в телефон, я просто копирую нужный файл в папку «Телефон». На моем телефоне он появится через несколько секунд
Чтобы обменяться документами с ребятами по работе, я кидаю в папку общая. И через несколько секунд этот файл появлятся у всех нужных мне людей – локально а не в облаке.

В машине, в качестве медиа центра стоит Google Nexus, по 3G смотрит в интернет. На домашнем компьютере кидаю карты навигации и музыку в папку Авто. Все автоматом складывается в автомобиль. Из папки Авто/регистратор забираю интересные моменты снятые видео регистратором(девайс в машине всегда онлайн).
Экономит массу времени.

Пожелаем BotTorrent успехов в развитии их замечательного проекта.
Качаем .
Доступно в Google Play Market и Apple AppStor. Думаю скоро появится под мобильную версию Windows.

PS
Спасибо Мурину Саше за наводку)

Думаю каждый из нас задавался вопросом «Что это еще за Портфель появляется в меню Создать и каково его назначение?» Мне так же стало интересно, для чего нужен портфель в Windows. На первый взгляд может показаться, что Портфель выполняет такие же функции, как и папка, но имеет другую иконку, но это далеко не так. Дело в том, что непосредственно в Портфеле нельзя создавать файлы и папки, а лишь копировать их в портфель и изменять. Создавать же можно только в подкатегориях, т.е. во вложенных папках! А все это из-за того, что функциональность портфеля предназначена для выполнения синхронизации между файлами и папками.

Давайте в рамках данной статьи выясним, для чего же нужен портфель в Windows и рассмотрим его работу.

Согласно справке, Microsoft рекомендует использовать портфель в двух ситуациях, при синхронизации файлов и папок с ПК по сети и между компьютером и съемным устройством. Я бы не стал использовать портфель для синхронизации по сети, так как намного проще дать доступ к ресурсам определенному пользователю и он через сеть сможет работать с документами. А вот синхронизацию через съемное устройство мы рассмотрим!

Как правило, необходимость в синхронизации возникает в том случае, если вы работаете с одними и теми же документами за разными компьютерами. Следовательно, вам всегда нужно иметь последнюю версию файлов. Конечно, можно каждый раз копировать и удалять всю папку, в которой находятся ваши документы, чтобы не выяснять какие файлы были изменены. Но, если файлов много, то это может занять немало времени. В этой ситуации нас как раз может выручить портфель Windows.

Создадим портфель в корне USB флешки (ПКМ \ Создать \ Портфель \ Рабочие документы)

И скопируем в данный Портфель файлы и папки, с которыми в дальнейшем собираемся работать за другим компьютером. Именно в момент копирования документов и папок между ними создается связь, благодаря которой будет выполняться сравнение версий файлов.

Как я уже говорил ранее, мы не можем ничего создать в Портфеле, так как к его меню просто нет пункта «Создать»

Но, мы можем создавать файлы и папки внутри папок

Все это обуславливается тем, что между файлами и папками внутри Портфеля существуют связь с теми файлами и папками откуда их скопировали. Если мы попытаемся создать файл, то у него просто не будет связи, а значит, не с кем его будет синхронизировать.

После того, как мы поработали с документами на другом компьютере (или просто с документами в нашем Портфеле Windows) мы можем выполнить синхронизацию (скопировать измененные файлы и папки).

Для этого мы можем либо нажать правой кнопкой мыши на Портфеле и выбрать «Обновить все»

Либо зайти в портфель и на панели инструментов нажать «Обновить все объекты»

Как вы видите из скриншота, с момента последней синхронизации я внес изменения в файл «Партнерство» и создал файл УУУУИИИИИ в подпапке. Так вот в процессе обновления файл «Партнерство» будет заменен, файл УУУУИИИИИ создан и таким образом на обеих сторонах будут идентичные файлы.

Чтобы получить более подробную информацию, вы можете щелкнуть ПКМ \ Подробности и при возникновении каких-то не стандартных ситуаций (оба файла были обновлены с момента создания связи с портфелем) принять правильное решение.

Так же перейдя в (Свойства файла (папки) \ Состояние) можно увидеть информацию, с каким файлом (папкой) он связан.

А так же обновить отдельный файл, отделить от оригинала и найти оригинал, к которому привязан файл или папка.

Большое спасибо, что поделились данным материалом! :-) Наш Центр Обучения вас не забудет!

Чтение каталога осуществляется по команде get-childitem. Чтобы учитывались вложенные папки, к ней добавляется опция -recurse, а чтобы отличать файлы от папок, используется функция PSIsContainer (). Если она возвращает значение True, то элемент - папка, в ином случае - обычный файл:

$source = ¨c:files¨

$srcfolder = get-childitem $source -recurse | where-object {$_.psiscontainer}

$srcfiles = get-childitem $source -recurse | where-object {!$_.pciscontainer}

Для решения нашей несложной задачи потребуются четыре списка: первые два содержат исходные файлы и папки, а два оставшихся - итоговые файлы и папки. Процесс синхронизации сводится к перебору этих списков и копированию файлов из одной папки в другую.

В первом цикле проверяется, существуют ли в папке для резервного хранения исходные каталоги, и если их еще нет, то они создаются посредством команды new-item.

foreach ($folder in $srcfolders)

$srcpath = $source -replace ¨\¨,¨\¨ -replace ¨:¨,¨:¨

$dstpath = $folder.fullname -replace $srcpath,$destination

if ($dstpath -ne ¨¨) {

if (! (test-path $dstpath))

¨Создание папки ‘$dstpath’.¨

new-item $dstpath -type directory | out-null

Очень похожий цикл выполняется и при сравнении результирующего и исходного списка папок, тем самым создается точная структура вложенных папок. Два других цикла обрабатывают файлы: первый копирует обновленные объекты из исходной в результирующую папку, второй - отсутствующие в исходном каталоге - из итогового. Узнать, обновился ли файл, можно по его хэш-коду. Заметим, что, поскольку файлы открываются в режиме «только чтение», они не блокируются от использования другими программами. Впрочем, по правилам хорошего тона файл по окончании вычисления хэш-кода необходимо закрывать функцией Close ():

$md5 = new-object system.security.cryptography.md5cryptoserviceprovider

$fs = new-object system.io.filestream ($file,$mode,$access)

$hash = $md5.computehash ($fs) # хэш-код файла

$fs.close ()

Затирать более новый файл его старой копией бессмысленно, и потому добавим команды для сравнения дат изменения. При обратном перемещении отсутствующих в исходной папке файлов никаких проверок не требуется, достаточно просто исполнить инструкцию copy-item. Скрипт целиком приводится в листинге - ему передаются пути к исходной и результирующей папкам (не забудьте добавить закрывающие слэши, например c:filessource), а далее всю работу он выполняет самостоятельно и на экран лишь выводит информацию, что именно происходит. Заметим, даже если вы предварительно не создали итоговую папку, то скрипт создаст ее самостоятельно:

if (! (test-path $destination))

new-item $destination -type directory -force | out-null

Итак, этот скрипт поможет скопировать отсутствующие на флэшке фотографии, таблицы, текстовые документы и др., не тратя время на ручное пофайловое сравнение. Чтобы использовать его, на Рабочем столе можно создать несложный BAT-файл, указав в нем команду вида powershell.backup.ps1 c:filessrc d:backup (путь к скрипту обычно требуется приводить целиком). В дальнейшем несложно синхронизировать папки, щелкая на этом пакетном файле. Напомним, что разрешает исполнение неподписанных скриптов команда Set-ExecutionPolicy RemoteSigned, исполненная от имени «Администратора».

Хранить копии важных файлов в совершенно незащищенном виде, пожалуй, не совсем верно с точки зрения безопасности. Система Windows 7, несмотря на все усилия Microsoft, остается уязвимой к вирусам, червям и прочим зловредам. До документов, которые постоянно лежат, по сути, в открытом доступе, они добираются без проблем. К счастью, в операционной системе появилось весьма полезное средство - виртуальные диски, которые монтируются и отключаются на лету. Они подходят и для резервирования каких-либо важных файлов, обращаться к которым может ограниченное число пользователей.

Виртуальный диск представлен в системе как файл формата VHD (Virtual HardDisk), имеющий полную структуру и содержание, сходные с теми, что у жесткого диска. Создается он с помощью встроенной в Windows 7 служебной программы для управления компьютером, которая запускается через модуль compmgmt.msc. В окне этой программы нужно щелкнуть на строке «Управление дисками» и выбрать в меню команду «Действие Создать виртуальный диск». Для нового виртуального диска задается размер, а затем том форматируется. На последнем этапе можно назначить букву диска или привязать VHD-файл к NTFS-папке.

Последний способ интересен тем, что копировать допускается в определенную папку независимо от того, где находится виртуальный том. Отмонтировав виртуальный том в утилите для управления компьютером, можно быть уверенным, что до самой последней копии важных документов ни вирусы, ни любопытные пользователи не доберутся. Сам виртуальный том, т. е. файл с расширением VHD, можно скопировать на резервный носитель. Дополнительная мера безопасности - шифрование виртуального тома, доступное с помощью BitLocker пользователям максимальной и бизнес-версии Windows 7. При подключении такого защищенного тома (а его можно использовать и на других ПК, причем даже там, где BitLocker не установлен) Windows попросит указать логин и пароль.

Поделиться