Синхронизация папок
Метки: linux | pidgin | svn | sync
Вторник, 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.
Пароля не спросил т.к. я использую авторизацию по ключу.
- #!/bin/bash
- for i in `svn status|grep -Ew "^\? (.*)$"|sed -e "s/? *//g"`; do
- svn add "$i@";
- done
- for i in `svn status|grep -Ew "^\! (.*)$"|sed -e "s/! *//g"`; do
- svn del "$i@";
- done
- svn ci -m "Update from `hostname`"
- 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
]]>
А в каком виде Pidgin хранит логи? Отдельные файлы для каждого контакта?
В Gajim'е, например, одна БД SQLite на все логи, но тут только Jabber.
PS: подписался на RSS блога =)
]]>
/home/burik/.purple/logs/icq/262631594/124567890/ Где 124567890 - номер ICQ собеседника. В этой папке лежат файлы в виде "2010-04-20.141744+0400MSD.html"
141744 (14:17:44) время когда было открыто окно с собеседником. Так сделано для ICQ/Jabber/IRC, другими не пользовался.
SQLite тоже будет синхронизироваться, но т.к. он бинарный, svn репозиторий быстро забьется старыми версиями.