Skip to content

MongoDB River Plugin для ElasticSearch не заработает, пока монга, из которой надо читать - не будет иметь коллекции rs.oplog

Именно эта коллекция нужна плагину, для того чтобы подхватывать изменения в монге и складывать их в индекс ElasticSearch'a.

Кажется, таки нашел то самое решение, которое отвечает всем запросам, предъявляемым к софту для синка данных. Всё началось с того, что dropbox  не захотел синкать мои симлинки.

Долгая дорога к счастью:

Dropbox - с него всё началось. Но у него обнаружились следующие проблемы -  он медленный; из-за того что данные хранятся на серверах дропбокса - пришлось выдумывать шифрование данных в дропбоксе при помощи fuse модуля encfs и последующего монтирования этой зашифрованной директории. Из-за зашифрованных имён возникали некоторые  трудности в поиске файлов, которые дропбокс не мог синхронизировать (например из-за отсутствующих прав на чтение). И дропбокс не мог симлинки. А мне симлинки нужны. А ещё у меня так и не заработал LAN sync.

ownCloud - клёвый, но тоже не может симлинки. Если для использования в компании, как аналог гугла - то клёвый. Если для всяких девопсеров, которые любят симлинки - то нет :) Еще - нет консольной утилиты, либо демона, который синкал бы данные в фоновом режиме.

Unison -  не рассматривал, много нюансов, мало плюшек. Сойдёт для двух серверов, которые видят друг-дружку.

BitTorrent Sync - Это оно! Btsync умеет симлинки. Из-за того что он построен по технологии p2p - данные быстрее синкаются, если много сидов. Не хранит данные на чужих серверах. Наконец-то можно не дрочиться с шифрованием. Есть мелкие баги, но терпимые.

UPD: Всё хуйня Миша, давай по-новой :) Btsync, после пары недель использования, оказался не таким распрекрасным. Не умеет корректно удалять файлы у всех пиров при удалении файлов на одном из них.

Теперь юзаю Unison, он - то что нужно.После включения ноды, которая была выключена на протяжении месяца - на все остальные  прилетело 15 гигов данных, которые были ранее удалены. Unison тоже говно.

Нужно искать какое-то решение с хранилищем метаданных.

UPD 2021.01.23: Последние три года - юзаю Syncthing и вполне доволен.

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

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

Ещё - дома не нужно в автозапуске всё то что есть на работе.

Поскольку везде вокруг меня не винда - я сделал себе заебись. В винде пришось бы делать дофига телодвижений. :)

В conky всё вышло безболезненно, там в конфиге просто было нужно было сотворить конструкцию вида:

some code
${if_match "$nodename" == "homepc"}
some individual code #1
${endif}
${if_match "$nodename" == "workpc"}
some individual code #2
${endif}

А вот в Awesome пришлось повозиться, но решение было найдено. Так как конфиги авесома написаны на Lua, то найти способ получения хостнейма - не проблема.

Вот что вышло:

function getHostname()
    local f = io.popen ("/bin/hostname")
    local hostname = f:read("*a") or ""
    f:close()
    hostname =string.gsub(hostname, "\n$", "")
    return hostname
end

hostname = getHostname()

if hostname == "homepc" then
        run_once("conky")
        run_once("psi")
        run_once("claws-mail")
        run_once("/opt/google/chrome/chrome")
elseif hostname == "workpc" then
        run_once("xscreensaver -no-splash")
        awful.util.spawn_with_shell("xrandr --output VGA1 --mode 1920x1080 --right-of HDMI1")
        run_once("conky")
        run_once("psi")
        run_once("skype")
        run_once("iceweasel")
        run_once("claws-mail")
        run_once("/opt/google/chrome/chrome")
        run_once("/usr/bin/python","/usr/bin/nagstamon")
else
        run_once("conky")
end

 

Example:

gtf 1280 1024 60

Save the resulting output as an example:

Section "Monitor"
    Identifier "Monitor0"
    Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync
EndSection

Section "Device"
    Identifier "Card0"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "Card0"
    Monitor "Monitor0"
    SubSection "Display"
        Modes "1280x1024_60.00"
    EndSubSection
EndSection

 

Если копировать URL из адресной строки фуррифокса - он копируется как Percent-encoding и при вставке куда-нибудь - его читабельность теряется.

Плагинов для исправления этой фичи/бага я не нашел, изменение через about:config параметров network.standard-url.escape-utf8 и network.standard-url.encode-utf8 на false - не помогло.

Нашел тут решение. Перед копированием надо ввести перед URI scheme тире. Например вот так:
"-https://support.mozilla.com/en-US/questions/760105"

π