Save My Work, когда еще не всё пропало
Содержание
Я уже посвящал читателей в недавние неприятные события, которые вынудили меня заняться переосмыслением жизненных ценностей обратить внимание на наш сайт. Они описаны в предыдущей статье, посвященной датчику влажности и температуры. После внезапной гибели моего жесткого диска и крутого облома с системой контроля версий (который, к слову, наблюдается не в первый раз), я созрел сделать то, что намеревался уже и прежде, но не делал.
Предыстория
Несколько лет назад у меня уже была ситуация с потерей важной информации в результате сбоя компьютера, но тогда потери были недостаточно велики, чтобы заставить по-хорошему решить проблему. Я тогда перепробовал с десяток программ, заявляющих, что они решат проблему автоматического бэкапа, но остался всеми недоволен. Жрут много ресурсов, куча ненужных настроек, просят денег, вылетают еще на этапе клацанья по галочкам и т.п.. Я же люблю такие программы, о которых можно, после настройки, забыть в полной уверенности, что не подведут. В общем, тогда я забил, как и всякий наш человек, положившись на авось и SVN.
Освободившееся теперь, поневоле, время я решил скоротать,- написать свою программу, которая будет делать резервные копии всех важных для меня папок и файлов. Делать это очень незаметно, не мешая работать ни мне, ни компиляторам с отладчиками, не пожирать системные ресурсы. Работать на 99.9999% надежно, и настраиваться очень быстро и просто. Позволять создавать хранилища резервных копий на любом компьютере, доступном мне по локальной сети или в Интернете.
Так и появилась служба Save My Work, версия 1.0 - как следствие внезапной гибели винчестера, недели разработки и отладки, и еще недели боевого тестирования.
Save My Work - это приложение, устанавливаемое в качестве службы (то есть запускается ОС автоматически), которое совмещает в себе роли TCP сервера и клиента, а также следит за изменениями в подконтрольных папках - созданием, изменением и удалением файлов и папок. Все замеченные изменения сообщаются серверу, который обновляет содержимое резервного хранилища. В качестве дополнительной меры безопасности служба проводит ежесуточно полную переиндексацию всех подконтрольных файлов и папок и сверяет с содержимым резервных копий на сервере. Всё это происходит с относительно небольшой скоростью в фоновом режиме, чтобы не оказывать заметного негативного воздействия на производительность компьютера. Объем и количество контролируемых файлов практически не сказываются на требуемых для работы службы процессорном времени (типичное значение не превышает 1% во время передачи файлов) и оперативной памяти (не превышает 10 МБ во время приема и передачи файлов, около 3 МБ во время простоя).
Служба может осуществлять передачу резервных копий файлов на любое количество серверов. В качестве сервера резервного хранилища она так же может одновременно обслуживать несколько клиентов (искусственных ограничений на их количество нет). Чтобы всё хорошо работало, нужно добавить службу в разрешенные исключения брандмауэра Windows или других фаерволов и антивирусов, которые могут блокировать ей доступ к сети. Служба не обращается ни к каким другим серверам, кроме настроенных пользователем. Она даже не запрашивает наличие обновлений на моем сервере. Это сделано умышленно, чтобы не вызывать никаких сомнений и подозрений у пользователя, ведь он доверяет программе самое ценное, что у него есть на компьютере.
Собственно, по этой причине, проверяйте, изредка, наличие новых версий самостоятельно, путем визита на этот сайт (в меню Конфигуратора есть ссылка для перехода на него, на тот случай, если забудете). Перед установкой новой версии очень желательно удалить уже установленную, все ваши настройки при этом сохраняются.
Служба SMW Service не имеет пользовательского интерфейса, и для настройки её работы предназначено приложение SaveMyWork Конфигуратор. С его помощью вносятся все необходимые настройки в конфигурационный файл службы, который она периодически проверяет и автоматически учитывает изменившиеся параметры. SaveMyWork Конфигуратор нужен только для настройки, его не требуется держать запущенным, чтобы система резервного копирования продолжала работать.
Всё это счастье работает под Windows XP и более свежими. Для установки приложения требуется иметь права Администратора на вашем компьютере.
Ну а теперь - скриншоты (кликайте по картинкам, чтобы увеличить).
Установка
Скачайте на свой компьютер инсталлятор программы (ссылка на скачивание в конце статьи).
Запускаем инсталлятор (нужны права Администратора).
Служба успешно зарегистрировалась - это хорошо.
Жмем на кнопку - получаем результат.
Настройка
Конфигуратор запущен - можно настраивать. От службы видны нормальные признаки жизни.
Добавляем под контроль важные папки. Для это используем всплывающее меню.
Можно указать имена файлов и папок, а также расширения файлов, которые следует игнорировать и не следует отправлять на сервер резервного хранения. По двойному щелчку в поле "Корневая директория" нужной строки открываем диалог выбора папки.
В диалоге указываем папку, которую хотим бэкапить. Повторяем действие столько раз, сколько нужно. Подпапки указывать не надо, под защиту попадают все файлы и директории внутри указанной рекурсивно.
Самое время настроить сервер. Если на вашем компьютере сервер не нужен - пропускаем его настройку. Если указать в поле Порт значение 0, то сервер запускаться не будет. Также необходимо выбрать расположение для хранилища резервных копий файлов ваших клиентов. Там должно быть достаточно места. Если вы планируете использовать систему для резервного копирования не по сети (у вас только один свой компьютер в распоряжении), то укажите место для хранения резервных копий на другом физическом диске по отношению к защищаемым директориям, тогда, в случае отказа вашего основного рабочего винчестера, высока вероятность, что резервные копии останутся целы.
Указываем параметры серверов, на которых будут храниться наши резервные копии. На каждом компьютере-сервере должен быть установлен и настроен в качестве сервера (предыдущий шаг) Save My Work.
Можно указать несколько серверов резервного хранения. Чтобы чрезмерно не загружать сеть передачей файлов, предусмотрена настройка ограничения максимальной скорости передачи. Подключаться можно не только к удаленным серверам, но и к локальному (localhost).
Когда все требуемые настройки указаны, необходимо нажать кнопку Применить все настройки.
Подождите пару минут, чтобы убедиться, что всё ОК. В сообщениях службы должны появиться строки, аналогичные приведенным на скриншоте. Если в начале строки вы видите ERROR, это значит, что что-то пошло не так. Например, следует настроить брандмауэр, фаервол или антивирус, чтобы он не запрещал обмен по сети для приложения SMW_Serv.exe.
О программе.
Это наша служба - она бережет нашу работу, её не надо убивать! 🙂
С другими синхронизаторами не конфликтует? Например, если программа запущена как служба и в то же время иногда в ручном режиме используется синхронизация этих же папок с помощью Total Commander? Как она среагирует на конкурента? Почему спрашиваю? Сама идея службы интересна. Я обычно раз в неделю бекаплю вручную с помощью синхронизатора Total Commander'а. Пытался автоматизировать, попробовал несколько программ, но ничего не подошло. Так и остался на ручном приводе. Привык к тому. что могу сам управлять процессом. Но может быть Ваша окажется подходящей. Но вопрос конфликта есть.
Здравствуйте! Понравилась Ваша служба автоматического сохранения копий. Подскажите, пожалуйста, можно ли в качестве сервера хранения использовать облачный диск и, если можно, какие настройки нужно произвести? С уважением, Валерий Малышев.
Добрый день!
С облачными дисками наша программка не работает. Программа разработана для резервного копирования очень большого объема данных (десятки ГГб), т.е. не для хранения в облачных сервисах, а только на своих ПК либо выделенных серверах.
Насколько мне известно, есть программы резервного копирования, которые умеют работать со службами Яндекс.Диск, Google Drive и прочих (например, Dropbox).