Синхронизация папок

Рубрика: Tips -> Howto -> Linux
Метки: | | |
Вторник, 20 апреля 2010 г.
Подписаться на комментарии по RSS

Дома и на работе в качестве IM клиента я использу Pidgin. Для того чтоб логи общения в ICQ/Jabber/IRC и т.д. везде были одинаковые, я написал небольшой скрипт, который хранит их в SVN. В случае появления новых файлов он добавляет их в репозиторий, а в случае удаления - соответственно удаляет.

Для начала на сервере, на который всё будет складываются, нужно сделать SVN репозиторий: burik@burik666 ~ $ mkdir mysync
burik@burik666 ~ $ svnadmin create mysync

Затем на Вашем PC нужно выбрать папку, которую необходимо синхронизировать и сделать checkout: burik@burik-nb mysync % svn co svn+ssh://burik@burik666.org/home/burik/mysync
Checked out revision 0.
Пароля не спросил т.к. я использую авторизацию по ключу.

В эту папку и положим мой скрипт sync.sh:
  1. #!/bin/bash
  2. for i in `svn status|grep -Ew "^\?       (.*)$"|sed -e "s/? *//g"`; do
  3.     svn add "$i@";
  4. done
  5. for i in `svn status|grep -Ew "^\!       (.*)$"|sed -e "s/! *//g"`; do
  6.     svn del "$i@";
  7. done
  8. svn ci -m "Update from `hostname`"
  9. svn up

Всё, теперь можно пользоваться: burik@burik-nb mysync % chmod +x ./sync.sh
burik@burik-nb mysync % ./sync.sh
A sync.sh
Adding sync.sh
Transmitting file data .
Committed revision 1.
At revision 1.
Он сам добавил себя в репозиторий и сделал commit.

Теперь в эту папку перенесем ~/.purple (именно тут Pidgin хранит свои логи и настройки) и сделаем symlink ~/.purple -> ~/mysync/.purple burik@burik-nb mysync % mv ~/.purple ./
burik@burik-nb mysync % ln -s ~/mysync/.purple ~/.purple

На другой машине достаточно сделать только checkout и символьную ссылку.

PS: Не кладите туда фильмы ;)

Комментариев: 2

  1. 2010-04-21 в 03:38:57 | Комментатор 1
    ]]>]]>

    А в каком виде Pidgin хранит логи? Отдельные файлы для каждого контакта?

    В Gajim'е, например, одна БД SQLite на все логи, но тут только Jabber.

    PS: подписался на RSS блога =)

  2. 2010-04-21 в 04:07:57 | BuriK666
    ]]>]]>

    /home/burik/.purple/logs/icq/262631594/124567890/ Где 124567890 - номер ICQ собеседника. В этой папке лежат файлы в виде "2010-04-20.141744+0400MSD.html"

    141744 (14:17:44) время когда было открыто окно с собеседником. Так сделано для ICQ/Jabber/IRC, другими не пользовался.

    SQLite тоже будет синхронизироваться, но т.к. он бинарный, svn репозиторий быстро забьется старыми версиями.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



Valid XHTML 1.0 Transitional