LINUX.ORG.RU

Как сделать сервис типа dropbox, только для себя?

 ,


0

1

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

Нужно то же самое, только в пределах поднятого VPN (в пределах локалки).

Главное требование - я не должен ничего нажимать и это не должно глючить.


Ответ на: комментарий от Oxdeadbeef

<На своей впске/сервере ставишь Syncthing, с которой раздаешь своим девайсам тоже с Syncthing

А оно умеет в фоне работать четко, без глюков и не выносить мозг своим присутствием?

ZugDuk
() автор топика
Ответ на: комментарий от ZugDuk

Конечно.

можно запустить в tmux/screen.

а можно и так:

#!/usr/bin/env sh

SYNCTHING_ROOT=$HOME/.syncthing

case `uname -s` in
    Linux)
        SYNCTHING_PID=`ps -ef | grep "$SYNCTHING_ROOT/bin/[s]yncthing" | awk '{print $2}'`
        ;;

    *)
        SYNCTHING_PID=`ps -Aww | grep "$SYNCTHING_ROOT/bin/[s]yncthing" | awk '{print $1}'`
        ;;
esac

if [ ! -z "$SYNCTHING_PID" ]; then
    echo "Syncthing is already running with PID=$SYNCTHING_PID!"
    exit 1
fi

mkdir -p $SYNCTHING_ROOT/logs

exec nohup $SYNCTHING_ROOT/bin/syncthing > $SYNCTHING_ROOT/logs/syncthing.log 2>&1 < /dev/null &

exit 0
Oxdeadbeef ★★★
()
Последнее исправление: Oxdeadbeef (всего исправлений: 1)
Ответ на: комментарий от Oxdeadbeef
ps -ef | grep "$SYNCTHING_ROOT/bin/[s]yncthing"

Вот из-за такого безграмотного использования грепа потом что попало и получается. Взять хотя бы тот же ecryptfs:

https://github.com/dustinkirkland/ecryptfs-utils/blob/5e877f3747303096f786186...
https://github.com/dustinkirkland/ecryptfs-utils/blob/5e877f3747303096f786186...

Он у меня так отловил примонтированный /mnt$HOME/.Private и подумал, что это $HOME/.Private, и не захотел ничего монтировать.

gentoo_root ★★★★★
()
Ответ на: комментарий от Oxdeadbeef

К тому же:

  • В скрипте не хватает set -e — если зафейлится что-то до запуска syncthing, то надо упасть сразу, а не пускать снежный ком.
  • exit 0 в конце — это не клёво, таким образом мы завершимся с кодом успеха, если запустить syncthing не получилось.

Я с радостью приму патч.

Тут уже предложили правильный патч в виде systemd. На починку этого скрипта я тратить своё время не хочу, баш-скрипты можно чинить до бесконечности. По поводу грепа по ps могу сказать только, что можно с помощью awk выцеплять нужную колонку и матчить её, но ещё проще просто использовать pgrep -xf (что там не на линуксах с pgrep, я не знаю).

gentoo_root ★★★★★
()

А ты смешной. У меня так Seafile работает много лет.

Lordwind ★★★★★
()

Сервер свой есть или нужна полная децентрализация?

Pravorskyi ★★★
()
Ответ на: комментарий от gentoo_root

За заметки спасибо, знаю что такое есть, просто скрипт всегда работал без проблем и решал свою задачу.

правильный патч в виде system

Thanks, but no thanks.

Oxdeadbeef ★★★
()
Ответ на: комментарий от v9lij

Ты предлагаешь всем теперь сишечку выучить? И как раньше обходились высокоуровневым шеллом... Подумать только, как люди страдали. А теперь любой админ выучит сишечку и давай коммитить в сустемд, чтоб та становилась все лучше и лучше.

mandala ★★★★★
()
Ответ на: комментарий от greenman

Ну дык щас часто можно встретить когда юнитом (который легко писать, да) пускают кастомный скрипт на баше.

mandala ★★★★★
()

Но у него фатальный недостаток - мои файлы могут увидеть всякие уроды.

А шифрование файлов для кого придумали? :)

th3m3 ★★★★★
()
Ответ на: комментарий от v9lij

А без умения херачить код в машинных кодах к ЭВМ вообще подпускать нельзя!

mandala ★★★★★
()
Ответ на: комментарий от Deleted

Если бы оно могло работать с клиентами Dropbox (эмулировать api Dropbox) - то было бы /thread. А так, все эти *cloud - издевательство какое-то - каждый со своим протоколом и своими клиентами.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

А нафига работать с клиентами Dropbox? Чем они лучше? Эти клиенты позволят заменить адрес сервера на свой?

Пользуюсь Nextcloud, издевательства не заметил. И на Debian и на Android стоят клиенты, но я ими даже не пользуюсь, т.к. хватает WebDav.

А для постоянной фоновой синхронизации использую Resilio Sync (проприетарный аналог Syncthing). Не вижу смысла гонять файлы между машинами через интернет.

Ещё вот в последнее время иногда rsync использую, в том числе на Android.

aquadon ★★★★★
()
Ответ на: комментарий от aquadon

А нафига работать с клиентами Dropbox? Чем они лучше?

Тем, что не надо заставлять хомячков ставить что-то в свои телефончики.

Эти клиенты позволят заменить адрес сервера на свой?

Адрес сервера меняется в локальном DNS. И все эти хомячки ходят своими клиентами на локальный сервер.

Ещё вот в последнее время иногда rsync использую, в том числе на Android.

Мне так вообще ничего кроме rsync нафиг не нужно.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Тем, что не надо заставлять хомячков ставить что-то в свои телефончики.

Так человек для себя спрашивал, вроде.

Адрес сервера меняется в локальном DNS. И все эти хомячки ходят своими клиентами на локальный сервер.

И при этом у них не работает настоящий Dropbox. Впрочем, как вариант годится. Есть истории успеха?

aquadon ★★★★★
()
Ответ на: комментарий от aquadon

Так человек для себя спрашивал, вроде.

Ну а я для себя хочу. Тема подходящая.

И при этом у них не работает настоящий Dropbox.

И замечательно.

Впрочем, как вариант годится. Есть истории успеха?

Не-а. Гугль ничего не находит на предмет «Dropbox-compatible server», хотя казалось бы... API там не такое и сложное, но самому писать лениво. Если никто за столько времени не попробовал API склонировать, то и нафиг не надо.

Stanson ★★★★★
()

Вот как человек без rsync мучается.

ugoday ★★★★★
()
Ответ на: комментарий от kardapoltsev

А ты уверен что клиенты dropbox используют публичное API, а не своё внутреннее?

Даже если так, то отреверсить никто не мешает.

Stanson ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.