Pull to refresh

Автоматический бекап конфигов с помощью DropBox

Reading time3 min
Views4.3K
В очередной раз убедившись о том, что автоматический бекап — штука очень полезная и нужная, я решил задуматься о том, как мне упростить этот процесс. Для меня в первую очередь наибольшую ценность представляют различные конфиги вроде базы данных Миранды, базы паролей Keepass, медиатеки iTunes и кучи всякой другой мелкой шняги и мне очень нравится замечательный freemium-сервис DropBox, который позволяет автоматически отслеживать изменения файлов и делать их бекап, однако логика его работы предполагает скопировать все необходимые файлы в одну папку, что для хранения конфигов не очень хорошо подходит. Казалось бы, стоит подумать о другом способе решения, но мне почему-то очень хотелось привязаться именно к DropBox, поэтому я стал копать в этом направлении.

Disclaimer aka «Отмазка»


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


Решение


Собственно, решение очень простое — если DropBox хочет, чтобы все файлы, за которыми он должен следить, были в одной папки, надо это обеспечить. Поскольку перемещать конфиги нельзя, нужно, чтобы они были одновременно в двух местах. Задачу этой обеспечения этой квантовой неопределенности замечательно решают символьные ссылки, они же симлинки (если вы не знаете, что это такое, то советую по-подробнее прочитать об этом в википедии). Если читать влом, а что такое симлинки вы не знаете, то вкратце это такая штука, которая позволяет сделать разместить один файл в двух разных местах в файловой системе — т.е. именно то, что нам и нужно.
Вообще-то симлинки — это фишка файловой системы, и она характерна для UNIX-подобных операционок. Однако в Windows, начиная с NTFS 5 тоже есть такой функционал, поэтому если у вас Windows Vista или новее, то вы сможете разместить нужные вам файлы в папке DropBox, а там, где они должны быть дополнительно, нужно сделать симлинки.
Это делается с помощью команды mklink
MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение

    /D     Создание символической ссылки на каталог.
          По умолчанию создается символическая ссылка на файл.
    /H     Создание жесткой связи вместо символической ссылки.
    /J     Создание соединения для каталога.
    Ссылка   Имя новой символической ссылки.
    Назначение Путь (относительный или абсолютный), на который ссылается
          новая ссылка.

Впрочем, если вы не очень любите командную строку Windows (да, да, я знаю, что все по-настоящему крутые чуваки вообще никогда не вылезают из командной строки, но иногда все-таки встречаются люди, которым GUI почему-то удобнее), то есть прекрасное решение. Это дополнение для к оболочке Windows Link Shell Extension, которое позволяет при помощи правого клика на файле сделать симлинк на него.
N.B. Не пугайтесь, когда увидите, что у созданного вами файла-симлинка в папке будет указан нулевой размер, это нормально.
.

Пример со скриншотами


Необходимо сделать автоматический бэкап файла профиля Miranda. Он хранится на SD-карте, поэтому предварительно необходимо отформатировать ее в NTFS. Нужный файл необходимо скопировать в папку DropBox, а оригинал удалить.

Image Hosted by ImageShack.us

После этого необходимо создать симлинк на хранящийся в папке DropBox файл.

Image Hosted by ImageShack.us

Теперь на месте оригинального файла будет находиться симлинк, который будет указывать на файл, лежащий в папке DropBox:

Image Hosted by ImageShack.us

Необходимо убедиться, что DropBox действительно увидел этот файл.

Image Hosted by ImageShack.us

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

Image Hosted by ImageShack.us

Благодарности


Я никогда бы не додумался до этого решения, если бы на мои истеричные вопли в твиттере не окликнулись @Pushken_vbane, @Targence, @Bockra, @Afalina, @Pechkin1007, @Vykser. Спасибо вам, ребята.

Отдельная благодарность хабраюзеру baxtep2, который обратил внимание на особенности работы DropBox с симлинками и на то, что лучше в папке DropBox хранить оригиналы файлов, а симлинки положить туда, где до этого были сами файлы.
Tags:
Hubs:
+10
Comments39

Articles