Pull to refresh

Comments 110

UFO just landed and posted this here
Жаль не портировали zfs для Windows :-)
Нечто подобное уже существует в Windows 7. «Предыдущие версии» называется. Правда пока предыдущую версию файла можно получить только из точки восстановления или бекапа системы, да и файл хранится целиком… Но, думаю, что в Microsoft скоро это исправят…

Однозначно такая программа необходима!
это в висте еще было
Вообще-то это было еще в 2001 году, в XP.
Было просто восстановление системы до контрольной точки, а сейчас можно восстановить только единичные копии
Это была та же самая «предыдущая версия», что и в нынешних Vista/7 ставилась, правда, отдельным патчем, требовала XP SP1, был это все же 2002 год, как вспомнил я, покопавшись в памяти получше.
Если я только что написал огромный кусок кода, только только нажал в редакторе кнопку сохранить, а потом случайно затер файл старой версией с ftp, то встроенная в Windows система мне никак не поможет восстановить утерянное.
Пользуйтесь нормальными средами. Эклипс, Идея к примеру ведут полную историю изменений фаила
А Photoshop, к примеру, не ведет
UFO just landed and posted this here
Я, например, месяца три назад поставил и рад. Использую и в индивидуальной разработке и в работе над документами.
Создал несколько разных репозиториев, настроил синхронизацию через флешку.
Теперь и дома, и на работе есть полная история изменений.
Конечно, только тех, когда я не забыл нажать «Commit», но это уже что-то и я не забываю.
В фотошопе настраивается сколько действий запоминать. По умолчанию там 20, вроде.
Я всегда сразу 200 ставлю. Должно хватить. Только это временно место на винте ест.
между прочим в time machine бакапы файлов тоже храняться целиком, они использую symlink для неизмененных файлов. А в Windows «Previous Versions» реализованы через Volume Shadow Copy который работает на уровне блоков NTFS (см. en.wikipedia.org/wiki/Shadow_Copy).
Всеми конечностями ЗА. Очень хочется видеть поддержку Висты и 7-ки
Я так понял типы файлов которые надо мониторить задаются в настройке?
Именно так. Нет совершенно никакого смысла мониторить все подряд.
Ну почему же нет. Вполне себе есть. Мало ли какой вирь проберётся в систему. Побъёт чего-нить, что обычными средствами не восстановить, а тут можно сделать точечный откат — и вуалая!
проще сделать образ для точки отката.
но надо не «сделать», а «делать». постоянно. В том то у тайм-машин и цимес!
Указываются маски. Если нужно следить за всеми файлами, то подойдет *. Само собой, можно указать все файлы в конкретной папке (C:\My_Files\*).
Да, это нужно. В первую очередь поддержку семерки хочется, чтобы потестить и сказать, чего хочется еще.
Кстати, если планируете бесплатно распространять, может, сделать проект опенсорсным?
Присоединяюсь, это нужно, определенно. Только еще бы поддержку вин 7 и интерфейс как в Mac TimeMachine
А можно еще и стартап замутить на этой почве, для доступа к любой копии файла с любого места сети. Тут и монетизация хорошо проклевывается.
дропбокс уже два года как хранит любую копию файла и это доступно с любого места сети (через веб или клиент). монетизация тоже уже реализована — бесплатные аккаунты ограничены на 2 гигабайта, платные — 9.99$ за 50гб.

www.getdropbox.com
Интересно. А как-то используется при этом volume shadow copy service?
Проект пока никакой. Последняя строчка кода была написано за день до защиты (было это давно). Сейчас появилось свободное время и решил довести какой-нибудь из старых проектов до ума. И хочется узнать, нужно ли кому-нибудь подобное и существуют ли близкие аналоги.
Если это была дипломная работа, то, вроде бы, имущественными правами на неё обладает вуз, а значит и опенсорса не будет. Поправьте, кто разбирается в законах.
Линукс тоже был дипломной работой :)
UFO just landed and posted this here
Обалденная штука. Удивляет лишь одно — вы действительно сомневаетесь в её необходимости? ;) Однозначно нужна и я искренне удивлён почему до сих пор этого нет в самой операционной системе, исключая «Восстановить предыдущую версию» в Windows 7. Если есть аналоги, то прошу отписаться тех, кто знаком с ними.
UFO just landed and posted this here
Вы не представляете какой спрос будет на программу, я уже скачиваю, прочитав всего один абзац.
Было бы неплохо заполучить что-то вроде продвинутой и быстродействующей CVS с автокоммитами
Тогда лучше Git — она умеет обнаруживать дубли, перемещения файлов и прочее, что поможет и для ведения истории и сократит объем хранения.
АвтоГит — это да, было бы круто. Хачу!
А вы не могли бы списком все преимущества перед SVN описать?
Я просто пробежался глазами по статье — вроде почти все тоже самое он и делает.
Мне кажется можно было бы просто реализовать автобота для SVN, который бы ловил все изменения с файлом. Вам, наверное даже легче было-бы. Тут вам и шифрование, и удобный клиент, и хранилище на удаленном ресурсе… Все сразу :)
автобота стоит писать скорее не для svn, а для git. работает он быстрее, не требует постоянно висящего сервера, да и размер хранилища(а тут это существенно, т. к. вся файловая система сохраняется) получается существенно меньше.
Можно и для git. Я просто с ним не работал не когда. На моей машинке работает свн, на производительность не жалуюсь :)
Использую SVN, но не разбирался в ее работе, возникает два вопроса:
1) Как SVN работает с бинарными файлами
2) Не будет ли разбухание базы в этом случае.

А по поводу программы не хватает функционала, если шифрование может подождать, то хранение на удаленных серверах очень хотелось бы.

Было бы замечательно, если бы к этой программе была документация для разработчиков, и она была OpenSource, идея интересная, и есть есть немалая вероятность того, что другие разработчики могут помочь. К тому же бесплатные и свободные проекты легче раскрутить.
«Subversion is equally efficient on binary as on text files, because it uses a binary diffing algorithm to transmit and store successive revisions. „

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

Я не переводчик, перевел как смог.
у SVN один большой минус — очень и очень сложно правильно удалить историю файла. Т.е. она сохраняется вся, с начала времён и навсегда.

а в остальном — отличное решение.
Как я понял это не совсем то же самое что svn. svn — средство для разработки программ, и она сохраняет определенную версию программы по запросу. Тут же вы сохраняяете все версии файла независимо от того написали вы svn commit или нет. Вещь бесспорно полезная, я сам думал написать некую подобную вещь для linux.
По статье: изменения программа пытается сохранить как diff файл, или как бинарную дельту? Есть ли механизмы удаления каких-то версий файла по запросу?
SVN — система контроля версий.
Версий чего угодно. Она часто используется для контроля версий исходников программ.
Вот потому я и написал, что в итоге все тоже самое плюс автобот для автокоммита :)
Автокоммиты несложно реализвать в linux при помощи механизма inotify — когда можно автоматически выполнять какие-то действия при изменении файловой системы. Про Windows не знаю. Там есть такая штука?
Поддерживаю, когда видел маковскую презентацию TimeMachine думал, что это лучшее, что может придумать человек. А у вас для win, это же супер.

Только переименуйте, чтобы в будущем не мучиться с правами и лицензиями. Назовите, например, Clockwards. В общем придумаете название)
интересно. очень нужный для Win проект. спасибо.

но название лучше сменить :)
UFO just landed and posted this here
На Delphi. Пока я не уверен, будет ли что-то вообще =)
Долой неуверенность. Даешь Open Source! Ну или даже пусть будет закрытый проект.

С удовольствием посмотрел бы на исходники, проект действительно очень нужный и интересный =)
гммм. Мне кажется имеет смысл отказаться от инкрементальных изменений файла, или сделать их опциональными. Рекомендую посмотреть в сторону линуксового rsnapshot/rsync — идеологически это именно то что вы делаете, и там бэкапы хранятся просто в папках в полном виде (с использованием линков, конечно), что дает возможность восстановить бэкап простым копированием, без использования софта. В случае полного краша системы это дает возможность ее поправить без предварительного реанимирования.
В хранилище так же хранятся полные версии файлов, если изменений слишком много (к примеру, если они составляют больше 30% от размера файла), или, если цепочка версий слишком длинная. Формат хранилища простой и, в крайнем случае, пользователь может найти и скопировать оттуда файл вручную (полные версий файлов отличаются специальным расширением).
Все же считаю что в чем более простом виде находится бэкап, чем проще его расковырять простым файл-манагером загрузившись с live-cd — тем лучше =)
… тем больше он будет занимать места.

Но, действительно, в идеале бы эта вещь должна быть опционной для разных файлов.
Ну, часто, проектируя системы бэкапа, разработчики забывают что в какой-то момент этот бэкап нужно восстанавливать =). И имхо именно этот процесс должен быть максимально простым и быстрым в любых условиях =)
да, у маковской ТаймМашин самая крутая фишка — это очень (ОЧЕНЬ!!!) красивая и наглядная интерфейсная интегрированность в софт — в Финдер, ай-Фото, айТюнз и т.п.
Нужно всегда искать золотую середину в каждом конкретном случае.
Практически всегда на одной чаше весов простота и быстрота, а на другой — ресурсы.
Сейчас компы быстрые и с большими винтами, поэтому зачастую можно не особо париться по поводу оптимизаций.
Пользуется ли спросом?
Вбиваем «backup software» на download.com и офигеваем от результатов.

Что дальше?
Допиливать до минимально-продукта, вываливать в продажу и (или) в бетатестинг, чтобы собрать отзывы, да побольше и поправить детские болезни.

Удаленные бэкапы — очень перспективная ниша, да с вашей фишкой, просто чума.

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

Продавать и продвигать на рынок будет интересно и, самое главное, есть куда.

Например, можно подумать над непрерывным бэкапом базы 1С в виде отдельного продукта :)
Для Windows у меня функции Time Machine выполняет NAS.
Для Mac внешний жесткий диск с разделом под Time Machine. :)
UFO just landed and posted this here
Софтина, конечна, мегаполезная, но вопрос: умеет ли сервис сохранять бекапы на smb-шару?
Текущая версия не умеет. Хранилище может быть только в локальной папке.
а вот это упущение :-) самая то соль была бы в бекапирование на удаленный ресурс, тем более для винды с ее UNC особо нет разницы куда пишешь — локально или удаленно — все делается системой.
А smb можно примонтировать в качестве логического диска, назначив ему букву? Если да, тогда всё получится =)
примонтировать то можно, только сервис работает из под системной или админской учетки, в которой этот диск не примонтирован :) (smb — обычное в смысле сетевое окружение)
В новых виндах: Правой кнопочкой на файлике -> «Восстановить прежнюю версию»…
Но автосохранялка для какой-нить системы контроля версий — вот что надо!
баян ;) восстановить прежнюю версию будет работать если, либо есть точка восстановления системы с этим файлов, либо бекап встроенной виндовой тулзы. сама она ничего автоматически не сохраняет ;)
Классная штука у вас получилась!

Но я пока больше склоняюсь к Norton GoBack т.к. она работает на более низком уровне.
Т.е. вот если у вас виндовс полностью слетит ты вы ведь не сможете откатить файловую систему до состояния скажем вчерашнего дня? А Norton GoBack сможет.
Спасибо за наводку. Видимо, именно эту программу я и не смог найти 2 года назад.
GoBack предназначена для другого. Вряд ли она вам подошла бы.

Коммерческий потенциал у программы очень большой, хотя два года и потеряно. Но все еще возможно. :) Когда MS сподобится сделать аналог — совсем не известно, и к тому же, вы при определенной сноровке можете идти на шаг впереди. Пока вас не купят. :)

А как долго разрабатывалась программа?
Оу, почему это GoBack для другого предназначена?

Как раз таки она и есть полноценная Time Machine, как в глобальном плане(отката всей системы), так и в плане отката изменений отдельно взятых файлов.
Я давно на нее смотрел, может ошибаюсь.

Подскажите — она постоянно мониторит изменения в файлах?
Как раз вся перспективность бэкапов как бизнеса лежит в том, что их можно делать на разных логических уровнях: раздел/файловая система, файлы, группы файлов/ состояния приложений и проектов.

Нет и не будет одного мегакрутого приложения, которое делает «правильные бекапы».

На каждом уровне есть интересные продукты вместе с интересными [узкими] проблемами. Зачем мне делать архив раздела, если важны только 10 текстовых файлов с книгами? И наоборот, зачем делать копии отдельных файлов, если важна целостность системы/проекта?
Мне гораздо интереснее, как это сделано изнутри :)
Как отслеживаете изменения файловой системы?
Как там с юникодом в именах файлов? Кириллицу нормально обрабатывает в нерусской винде?
При запуске служба инициализирует сервер TCP/IP и создает по одному монитору на логический диск. Мониторы работают в отдельных потоках, используют WinAPI функцию ReadDirectoryChangesW. Мониторы передают события основному управляющему объекту, который оставляет только нужные (согласно фильтрам Include и Exclude), классифицирует события, преобразовывает во внутренний формат и передает другому объекту, менеджеру хранилища.

Менеджер хранилища работает так же в отдельном потоке. Часть входящих событий сразу же пересылает на уровень ниже: объекту, управляющему хранилищем на низком уровне. Часть перемещается в «отстойник» (в основном, события изменения содержимого). Отстойник нужен для того, чтобы в хранилище добавлялись только более менее «стабильные» версии (к примеру, если за 10 секунд в файл будет сделано 3 записи, то сохранено будет только последнее состояние).

Сервер работает по протоколу TCP/IP (каждый клиент обслуживается отдельным потоком). Формат сообщений довольно простой (4 байта на размер, байт на тип, остальное уже зависит от типа сообщения). Команды от клиентов передаются менеджеру хранилища, тот опять же передает их на уровень ниже, получает результат и передает серверу. Текущая версия понимает только 2 команды: Timeline (передается имя файла или же путь, возвращается полная история версий для всех найденных файлов) и Restore (передается имя файла, timestamp, возвращается результат и timestamp ближайшей версии).

Текущая версия программы полностью ansi (использовался Delphi 7). В Delphi 2009 уже есть полная поддержка Unicode, перевести проект будет не очень сложно.
т.е. вы, грубо говоря, делаете ReadDirectoryChangesW («C:\»)? Можно узнать степень загруженности процессора с работающей программой?
Загруженности процессора в какой момент? В момент простоя? 0%. Никогда не понимал подобных характеристик.

Не перезагружал Windows около 10 сейчас, памяти выделено 3 мегабайта с копейками. Заметной нагрузки сервис не создает. Что с ним, что без него, разница «на глаз» не ощутима (при довольно слабом железе).
вопрос был к кому, чтобы узнать сколько процессорного времени кушает ваш сервис. Делал когда-то давно программу похожую на вашу. В то время ReadDirectoryChangesW почему-то показалась довольно ресурсоемкой функцией, поэтому пошел глубже, в драйвера и нулевое колько windows: отлавливал изменения файлов на низком уровне.
как быстро коммитятся изменения? не бывает ли блокировок и накладок на больших файлах, когда ваша программа их ещё читает, а файл снова перезаписывается?
Работа непосредственно с хранилищем (добавление, извлечение, чтение истории) происходит в один поток. Запросы ставятся в очередь и постепенно выполняются. Внешние же запросы от клиента выполняются в потоке, обслуживающем конкретного клиента (соединившегося по TCP/IP), но работа с хранилищем все равно происходит с использованием критических секций (фактически, опять же создается глобальная очередь запросов).
Непосредственно файловые операции за пределами хранилища контролируются ОС (в случае, если служба копирует файл, а сторонняя программа пытается произвести запись).
Отличная разработка. Хотелось бы иметь возможность самому указывать папки, в которых нужно следить за изменениями и бекапить. У меня все данные хранятся на отдельном диске, так что бекап нужен только для него.

Кстати, у idrive тоже есть нечто похожее. Называется Continuous Backup. Следит за изменениями и раз в 10 минут бэкапит (на свои сервера). Они 2 гб дают бесплатно. Пользуюсь уже довольно давно, доволен.
Указание конкретных папок предусмотрено изначально. Надо просто указать их в FilterInclude (маски файлов для резервирования).
мини-баг: не записываются в хранилища файлы, которые были созданы ДО установки программы — все дальнейшие пересохранения никак не попадают в сторейдж.
Вообще-то должны (у меня 100% добавляются). Попробуйте еще раз =) Обработка изменений идет не сразу, а где-то спустя 10-15 секунд.
В любом случае, строго не судите. Массового бета-теста не было (сам использую и несколько моих друзей).
я все файлы проектов держу на дропбоксе, он тоже сохраняет версии и уже не раз меня спасал :)
Была бы локальная версия сервера дропбокс, ей бы цены не было
В уже далёком 2005 году была выпущена Executive Undelete 5.0 build 114. Кроме расширенного функционала Корзины она также могла вот что:
«Одной из главных особенностей новой версии являются средства автоматического отслеживания версий документов Microsoft Office. Теперь при редактировании и сохранении файлов Word, Excel и PowerPoint программа автоматически „захватывает“ их предыдущие версии т.е., помимо возможности восстановления при непреднамеренном удалении, она также обеспечивает защиту информации при случайной перезаписи.»

Потом она очень долго не обновлялась, и вот, вдохновлённый этим топиком, я узнал, что теперь это Diskeeper Undelete 2009.

Это я к тому, что подобные решения были и раньше. Но их существование не лишает права на существование Вашего варианта :)
1. www.genie-soft.com/Products/genie_timeline/default.html
2. www.rebit.com
3. StorageCraft ShadowProtect: www.storagecraft.com/shadow_protect_desktop.php

— Первая программа не делает снимок всего диска, выполняет продолжительное резервирование с возможностью восстановления файлов по временной шкале.
— Rebit — аналог TimeMachine, единственный пока для винды. На её основе создан Seagate Replica.
Сравнения:
docs.google.com/viewer?url=http://www.genie-soft.com/Products/genie_timeline/TimelinevsSeagateReplica.pdf

docs.google.com/viewer?url=http://www.genie-soft.com/Products/genie_timeline/TimelinevsTimeMachine.pdf

docs.google.com/viewer?url=http://www.genie-soft.com/Products/genie_timeline/TimelinevsShadow.pdf

— ShadowProtect — некое подобие Ghost, Acronis, причём лучшая прога в своём классе. Позволяет отслеживать последние изменения на диске и бэкапить в определённые промежутки времени, своего рода «continuous protection backup». дорогая, быстрая и безотказная.

Для линуксоидов имеется подобная программа Back in Time
backintime.le-web.org/
Проверена на Убунте, работает безотказно!
UFO just landed and posted this here
Использую для этой цели Dropbox — dropbox.com. Для бесплатных аккаунтов хранит историю 30 дней, для платных — вечно. Автоматические бакапы на сервер и на другие компы. И кроссплатформенный (только под Маемо нет пока)
Полностью поддерживаю. Много раз выручало, невероятный функционал при полной бесплатности.
Кроме того у них никаких лимитов на трафик, по крайней мере пока.
Оказывается не вечно(.
Простите за некропост)
У меня дома стоит Windows Home Server (Acer) — делает бакап всех 4 компьютеров дома и заодно является файловой помойкой (там около 5 терабайт). Бакап файлов инкрементрый, одинакоые блоки (со всех компьютеров) бакапяться с подсчетом ссылок. Time Machine до этого пока далеко.
С огромным удовольствием поставил бы эту программу отдельным личностям на работе. Очень, очень полезная вещь. Жаль под Висту и Семёрку не работает.
Прошу вас, не бросайте проект.
Acronis уже сделал такое под винды, в общем описании на сайте называется Continuous Data Protection,
а вообще NonStop Backup:
www.acronis.com/homecomputing/products/trueimage/
с красивым интерфейсом, автоматической консолидацией бекапов и таким прочим.
Что касается этой программы, то можно еще добавить архивирование файлов отдельных версий.
Sign up to leave a comment.

Articles