Как мне синхронизировать две папки в реальном времени в Windows 7?


153

Я хочу синхронизировать две папки в режиме реального времени под Windows 7.

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

Я попробовал Microsoft SyncToy , но она выполняет синхронизацию только вручную или по расписанию (таким образом, не удовлетворяя требованию «в реальном времени»).

Можно ли этого добиться с помощью самой Windows 7? Если нет, есть ли другие способы сделать это?


1
Связанный вопрос: superuser.com/questions/349/…
koppor

Я только начал использовать allwaysync - работает как шарм
Hugo Forte

1
Хорошая вещь об использовании чистого решения для Windows состоит в том, что в windows api есть события, которые вы можете подключить, чтобы получить событие, когда что-то меняется, что гораздо менее подвержено ошибкам, чем сканирование файлов / каталогов, как это делают некоторые инструменты с открытым исходным кодом.
Келли Элтон

Никогда не пробовал это программное обеспечение, но выглядит многообещающим. techsoftpl.com/backup/index.php
Моав

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

Ответы:


91

Dsynchronize позволяет вам сделать это. Я не уверен, как это работает в Windows 7, но это бесплатное и автономное приложение, так что попытка не повредит.


4
Спасибо! Я попробовал это, и это работает как шарм, работает безупречно на Windows 7.
Acme

1
Я управляю этим уже почти год. Он работает довольно хорошо, хотя он не синхронизируется правильно, если большое количество файлов изменяется в течение нескольких минут (например, при распаковке или извлечении репозитория). Но так как я не нашел что-то лучшее, я все еще буду придерживаться этого.
акме

1
Это отличный инструмент, но когда я сопоставил папку самбы Linux на диске Z: с помощью команды net use файлы не могут быть синхронизированы из локальной папки Windows с Z :, он сообщает «Ошибка прав доступа», кто-нибудь встречал это раньше?
Кельвин Ху

2
После загрузки файла Dsynchronize.zip по ссылке в этом ответе 360 Internet Security пометила его как имеющий следующий риск: «Троян (HEUR / QVM11.1.Malware.Gen)». 57 голосов заставляют меня думать, что троян, возможно, является недавним дополнением (или ложным срабатыванием), но попробовать не стоит. Извините, что пришлось понизить голос, но «не пытаться вредить» больше не кажется применимым.
Кевинмике

1
@kevinmicke - я проверил самую последнюю версию, и она выглядит помеченной virustotal.com
jchavannes

31

Я использую команду ROBOCOPY и создал командную строку для синхронизации между двумя папками (инкрементная синхронизация), моя команда такая

ROBOCOPY "Source_Folder" "Destination_Folder" /E /ZB /XJ /XF "~*.*" "*~.*" "desktop.ini" "Thumbs.db" "*.torrent" ".lock" ".Sync*" /xd "Rubbish" ".Sync*" ".Box Sync" "_private" "Outlook Files" /FFT /MT /R:2 /W:5 /V /MON:1 /TEE

(исключить файлы:) "~*.*" "*~.*" "desktop.ini" "Thumbs.db" "*.torrent" ".lock" ".Sync*"(исключить папки, включая файлы в этих папках:) "Rubbish" ".Sync*" ".Box Sync" "_private" "Outlook Files"Также это повторяется каждую минуту и ​​/ или разовое изменение файла / папки.

С уважением, Ризван.

ФЛАГИ

/E      Copy subdirectories, including empty ones.
/ZB     Use restartable mode; if access denied use backup mode.
/XJ     Exclude junction points. (normally included by default).
/FFT    Assume FAT file times (2-second granularity).
/MT     Do multi-threaded copies with 8 threads.
/R:2    Number of retries on failed copies.
/W:5    Wait time between retries.
/V      Produce verbose output, showing skipped files.
/TEE    Output to console window, as well as the log file.
/MON:1  Monitor source; run again when more than 1 change seen.

/XF [files]  Exclude files matching given names/paths/wildcards.
/XD [dirs]   Exclude directories matching given names/paths.

1
Работает, и работает хорошо, за исключением всего окна команды на моем экране. Я знаю, что есть способы запустить его в фоновом режиме или обслуживать его, и я проверю их.
music2myear

Для справки /MON:1контролирует источник и повторно запускает копию, если есть 1 или более изменений, и /MOT:1означает мониторинг источника и повторно запускается через 1 минуту, если там, где изменения. Я думаю, этого /MON:1достаточно.
ecerulm

Вы можете "обслуживать" команды с помощью NSSM: nssm.cc
Benj

Это действительно в реальном времени, если вы должны иметь его раз в минуту?
Трипп Кинетикс

/ MON не удалит файлы, если они будут удалены из источника. Для этого вы можете добавить / PURGE в конец, чтобы получить эквивалентную функциональность для / MIR с мониторингом.
Шейн

21

Есть Synkron с открытым исходным кодом и кроссплатформенный.


1
Но синхронизируется ли он в реальном времени?
Acme

Не похоже на это :(
jonathanconway

3
Это то, что просто нужно. Мне не нужно, чтобы он работал в режиме реального времени, но, как и глубина опций, которые предоставляет этот инструмент, создание расписания работает просто отлично. Этот инструмент поддерживает синхронизацию каждую 1 минуту, что очень близко к реальному времени!
cracked_all

Как использовать подстановочные знаки для папок черного списка?
Один

18

Вы можете использовать символическую ссылку NTFS, чтобы папки на каждом диске фактически указывали на одну и ту же папку.


Это интересный подход, но я предполагаю, что он не сработает, подключенный диск (цель синхронизации) - Linux.
акме

2
Вы можете создать символическую ссылку NTFS на путь Samba, у меня на рабочем столе есть несколько ссылок на мой файловый сервер Ubuntu.
Крис Смит

5
Это решение может подойти, если вам не нужна физическая репликация данных.
vegatripy

4
Не полностью заполняет мою потребность копировать файлы с оперативного диска обратно на SSD.
Майк де Клерк

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

15

Поскольку я прочитал ваш комментарий "... подключенный диск (цель синхронизации) - это Linux", то я хочу дать вам лучший подход: вам нужен только ssh-доступ к цели Linux, он намного быстрее и работает намного лучше по более низкой пропускной способности и большим задержкам.

Используйте функцию WinSCP « Держите удаленный каталог в актуальном состоянии »!

Вам нужно будет немного настроить параметры передачи, чтобы всегда устанавливать двоичные файлы, исключать файлы (обычно файлы svn или git и т. П.) И т. Д. Также используйте «автоматическое применение» параметров передачи. Также создайте сеанс, в котором настроены хост, локальные и удаленные каталоги. В этот момент вам нужно всего лишь открыть WinSCP, активировать сеанс (который затем также автоматически применяет параметры передачи, например, из-за соответствия хоста), и нажать кнопку постоянно обновлять.

Или вы можете написать это с помощью скриптов WinSCP!

.. и просто кстати: если сценарий был Unix-to-Unix, то проверьте этот вопрос .


Спасибо! Я посмотрю на это, звучит как хорошая идея.
Acme

-1 Извините, только что удалили весь мой каталог из-за этого паршивого инструмента синхронизации. ОЧЕНЬ ПЛОХОЙ ИНСТРУМЕНТ.
Пони

1
Я думаю, что это слишком сложно из-за желания просто синхронизироваться.
Менелаос Бакопулос

3
@Poni: Ты тоже можешь порезаться ножом. Это не инструмент, который виноват здесь, чувак! :-D
stolsvik

1
@meewoK: он попросил синхронизацию в реальном времени и упомянул, что целью является Linux-box. Я обнаружил, что samba-решение (монтирование Linux на Windows) - это ПУТЬ для замедления медленных линий, в то время как SCP-решение быстрое. Использование WinSCP было единственным вариантом, который, как я обнаружил, удовлетворял мои собственные потребности, и это довольно хорошо. Я хотел поделиться этим. Настроить начальную синхронизацию очень просто: просто наведите левую сторону на локальную, войдите в систему и перейдите на удаленный с правой стороны, а затем нажмите на синхронизацию. Кроме того, я просто упомянул пару дополнительных функций, которые ускоряют настройку, что может усложнить ситуацию.
stolsvik

8

Ниже приведены некоторые инструменты для синхронизации папок в режиме реального времени, отметьте каждую из них и выберите одну по вашему требованию.

  1. FreeFileSync
  2. AllwaySync
  3. SyncBack Free
  4. Synkron
  5. Синхронизатор файлов
  6. PureSync
  7. GoodSync

«Клиент соглашается с тем, что Allway Sync Free имеет определенные ограничения и что эти ограничения могут меняться со временем без уведомления или обязательств со стороны разработчика. В настоящее время ограничения могут не позволять заказчику обрабатывать более 40 000 файлов в течение любых последующих 30 дней». - Лицензия Allway Sync: allwaysync.com/license
Эшли Росс

7

Я пробовал довольно много программ, и единственные, которые выполняют зеркалирование папок в реальном времени:

Лично мне нравятся Yadis! Бекап лучше. Он имеет больше возможностей, чем Dsynchronize. Вы можете включить управление версиями, количество версий, какие операции с файлами отслеживать, и я уверен, что это намного больше. Кроме того, он имеет лучший графический интерфейс, который выглядит более изысканным.


1
Yadis! Резервное копирование великолепно: обновление в реальном времени происходит быстро, дружественный интерфейс, множество опций и никакого трояна. Как я прокомментировал принятый ответ, после загрузки Dsynchronize.zip по ссылке в этом ответе 360 Internet Security пометил его как имеющий следующий риск: «Троян (HEUR / QVM11.1.Malware.Gen)».
Кевинмике

4

Если вы хотите синхронизировать папку с USB и уже используете Dropbox, используйте DropboxPortableAHK .

Таким образом, мои файлы Dropbox синхронизируются на любом компьютере, а также на моем iPhone с помощью приложения Dropbox и USB-накопителя, который я использую в универе с этой портативной версией.


Мертвая ссылка. Похоже,
JYelton

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

1

Другой очень надежный способ синхронизации папок - использование rsyncв командной строке. Вам придется скачать набор инструментов MingW или, если вы установите cwRsync, он установит rsync.exe, который вы можете запустить напрямую.

Все, что вам нужно, это команда:

rsync -r source_path destination_path

Флаг -r является рекурсивным для всех вложенных папок.

В Windows (7) путь должен быть указан в следующем формате. Например, чтобы указать c:\testэто будет /c/testили/cygdrive/c/test

Это самый эффективный, быстрый и мощный способ синхронизации папок с большими файлами, хотя Dsynchronize в принятом ответе также работал для меня.

Это не живое или реальное время, хотя. Каждый раз, когда вам нужно синхронизировать, вы будете запускать эту команду.


1

Может быть, этот поможет вам: Allway Sync . Есть бесплатная * и про версия. Функции:

  • Гибкая настройка и настройка.
  • Поддерживает файлы любого размера.
  • Простой в использовании графический интерфейс.
  • Поддерживает практически любую файловую систему (FAT, NTFS, SAMBA, Netware, X-Drive, CDFS, UDF и другие).
  • Может быть установлен на рабочий стол, ноутбук, USB-накопитель, внешний жесткий диск или устройство с поддержкой U3.
  • Возможность синхронизации более 2 папок.
  • Синхронизация данных между настольными ПК и ноутбуками по сети

Я использовал эту программу, и мне понравилось.

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


1
«Клиент соглашается с тем, что Allway Sync Free имеет определенные ограничения и что эти ограничения могут меняться со временем без уведомления или обязательств со стороны разработчика. В настоящее время ограничения могут не позволять заказчику обрабатывать более 40 000 файлов в течение любых последующих 30 дней». - Лицензия Allway Sync: allwaysync.com/license
Эшли Росс

Я использую Resilio Sync, и он отлично работает, особенно в сетях. Он также синхронизируется довольно быстро, но недостаточно быстро для веб-разработки. У меня есть виртуальная коробка с общей папкой, которую мне нужно синхронизировать с локальной папкой, которая является корнем веб-сайта. Я попробую Allway Sync. Его интерфейс довольно прост, по крайней мере.
Крис Гейрман

0

Вы можете попробовать SyncBack4all , это программа для синхронизации папок и файлов в реальном времени.


1
За исключением того, что это не бесплатно.
Пайя

0

Watch 4 Folder v2.3 - небольшой (802kb), портативный (без установки) и мощный инструмент мониторинга для отслеживания активности папок и файлов.
Он прост в использовании и настройке, он может отслеживать 15 типов событий и запускать различные действия в случае возникновения события.

http://leelusoft.blogspot.in/2011/10/watch-4-folder-23.html

-При использовании его на сервере, запуск нескольких файлов exe - преобразование в PDF с использованием Acrobat, печать их, отправка в виде вложений в офисы по всей стране с помощью вызовов SMTP ... мало программного обеспечения делает много вещей !!


0

Я хотел того же. И в принципе Центр синхронизации в Windows7 обеспечит это, но по-другому: вам нужно только установить сетевую папку как Всегда доступную в автономном режиме. При этом у вас в основном синхронизируется локальная и удаленная версии, вы работаете так, как если бы вы были в сети, но на самом деле это удается сделать локально. Другими словами, вы видите только одну копию, но имеете ее в двух местах, но это цель синхронизации. Вместо того, чтобы быть прозрачным, что существует удаленно синхронизированная копия, существует локально синхронизированная копия. В любом случае это покрывает основную цель сбоев сети.

Я должен сказать, что это теория, потому что я застрял, так как мои сетевые диски управляются Novel, и поэтому у меня нет опции «Всегда доступно в автономном режиме».


Центр синхронизации: windows.microsoft.com/en-au/windows-vista/…
hB0

0

Я использую бесплатную синхронизацию https://code.google.com/p/big5sync/

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

MirrorFolder http://www.techsoftpl.com/backup/ также может выполнять синхронизацию в реальном времени и работает как служба (для загрузки не требуется графический интерфейс), но она не бесплатна ($ 39)


0

Я нашел FreeFileSync (с открытым исходным кодом - но следите за рекламным ПО при установке) лучшим.

Мне также очень нравится Backup2 ( https://bvckup2.com/ ) для более крупных задач, так как он работает быстрее всего из протестированных мною, но он не бесплатный и предназначен только для односторонней синхронизации.


-3

Вы можете назначить путь к папке на диске с помощью Sub.

Код:

SUBST L: "C:\Some\Path"

2
Какая? Как это может привести к синхронизации?
Twisty Impersonator
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.