Fájlok szinkronizálása, mozgó RPi

Fórumok

Hobbiként az autómba belekerült egy Raspberry Pi, ennek a fejlesztgetéseit csinálgatom szabad perceimben (nem sok van).
Főképpen multimédiás felhasználásra szeretném, így KODI-t kapott és egylőre egy saját rendszert (LibreElec nem volt jó).
WiFi-re csatlakozik amikor hazaérek, ilyenkor jó lenne ha tudna szinkronizálni fájlokat. Zenét, videót, akármi mást.
Tehát nem mindig van neten, van hogy indulás után több órával viszont kap internetet, ilyenkor kellene szinkronizálni.

Első körben egy irányba gondoltam ezt megvalósítani. (esetleg LOG letöltés és egyéb témakörben előfordulhat vissza is adat)
Lenne szerveren egy adott helyen elérhető anyag, amit leelenőriz, majd ami módosult azt megcsinálja az RPi-is.
Ha újat másolok fel, ha átnevezek, ha törlök, könyvtárak, fájlok. Szóval néha tükrözné azt ami a szerveren van.
rsync, lsyncd, és egyéb irányokban nézelődem, de kicsit megkavarodtam.
Akár részletes iránymutatást is szívesen veszek.

Ha szinkronizálás végén, megállásakor, hiba esetén futtatható parancs az jó lenne. Így frissíthető lenne a library.
Szerver oldalról http, https kapcsolatos irányba gondolkoznék inkább, azt is legalább egy simple auth-al. SSH-t net felé nem engedek, csak VPN-en belül.
Félig letöltött fájlok problémája is előfordulhat, erre is célszerű valami megoldást találni.
Szinkronizálás állapotáról szerveren és az autóban is szeretnék látni visszajelzést.

Hozzászólások

Torrent tudomásom szerint kicsit más.
- Több "szerver"-ről kapod az anyagod, itt mindig csak egy van.
- kell neki egy címző fájl, amivel megmondod mi legyen. Én egy fix beállítást szeretnék.
ownCloud, dropbox és hasonlók már közelítenek amit szeretnék, sőt lehet valamelyik teljesíti is.
Most épp az lsyncd-t nézegetem. Talán jó is lesz. Csak hátha van itt valakinek vele tapasztalata.

Pedig nem ir hulyeseget, van Bittorrent alapu szinkronizalo program is. Ugye a BT kibirja a kapcsolat megszakadasat (folytatja), jol turi a hibat (mindenre van checksum, es magatol ujratolti azt a reszt), nem gond, ha tobb helyre kell biztonsagi mentest kesziteni, stb..
Szoval van elonye, erre pont feleslegesnek tartom.

--
Any A.I. smart enough to pass a Turing test is smart enough to know to fail it. -Ian McDonald

Csomgaolni a fájlokat nem szeretném, mert lehet 10-10 percre állok meg valahol akkor semmi sem töltődne le, mert 15 perc kellene a csomaghoz. Minden tömörített már, szóval nem mérvadó a méretcsökkenés, így darabokban/fájlonként esélyes, hogy lejönne.
Rsync és társainál nem egyértelmű, hogy cron és 10 percenként vagy hogy működik. Jobb lenne ami folyamatosan figyel, majd ha van mit tölteni a akkor szedi. Ha nincs net ne dobjon egy hátast. Ezenkívül aszinkronizáció ideiglenes szünteltetése is jó lenne, ha épp mobilneten van.

rsync --delete a barátod. Kulcsos SSH felett is müködik.

Kicsit ágyúval verébre de ha letennél egy nextcloud -ot otthon, meg egy klienst az rpi-re, akkor pontosan az történne amit akarsz. Amikor wifit kap, észleli hogy kapcsolat van a szerverrel és lepollozza a módosításokat, új fájlokat, ezeket letölti, kicseréli a módosult állományokat. HTTPS felett működik. Vagy hasonló viselkedést összehozhatsz úgy hogy a wifi kapcsolat felépülésének az eseményére akasztasz valahogy egy triggert, ami kilő egy olyan bash scriptet amiben már azt művelsz amit akarsz. Mivel azonos hálózatba kerül a forrással, így sok akadály már nem lesz.

--
debian,libreelec,openmediavault,ubuntu,windows,arch,lineageOS
zbook/elitebook/rpi3/nexus5_hammerhead

Mennyi adat?
Dropbox, GoogleDrive nem játszik?
Nekem van, ahol így megy!

Syncthing - https://syncthing.net/

Multi-multi-multi......multiplatform, tényleg még egy kenyérpirítón is elfut, és gyönyörűen szinkronizál, egyszer beállítod mit, és kivel/mivel akarsz szikronizálni és már intézi is.
Nekem otthon az ARM procis nasomon fut, illetve a telefonokon, főként a képeket szinkronizálom automatikusan az otthoni nasra.

Egyébként itt, HUP-on olvastam erről a programról először.

IOS-en pl. nem megy.
Illetve megnéztem a FAQ-ot és ez _nekem_ nem tetszik:

2.2.13. How do I rename/move a synced folder?

Syncthing doesn’t have a direct way to do this, as it’s potentially dangerous to do so if you’re not careful - it may result in data loss if something goes wrong during the move and is synchronized to your other devices.

The easy way to rename or move a synced folder on the local system is to remove the folder in the Syncthing UI, move it on disk, then re-add it using the new path.

Resilio integráció ellenben kiválóan működik.

Üdv,
N.

Viszonylag ritka, hogy az egész szinkronizálandó folder struktúrát akarjuk átnevezni, elmozgatni. Kissé fájóbb eset az, ha egy könyvtárban csak a kis és nagybetűket érintő átnevezést csinálsz az képes nagyon megzavarni a fejét, mert egyes operációs rendszereken az ugyanaz a könyvtár már rendszeren meg nem.

A nextcloudot egyáltalán nem zavarja, mondjuk láttam már olyat is hogy egy mappát (benne subfolderekben fájlok) átnevezve ő arra a következtetésre jutott hogy delete + reupload, de hát ráérek :)

--
debian,libreelec,openmediavault,ubuntu,windows,arch,lineageOS
zbook/elitebook/rpi3/nexus5_hammerhead

Syncthing, ownCloud, nextcloud, irányában nézelődök.
Az rsync kicsit kieső, ha jól értelmezem, Cron, és egyéb scriptes megoldásokkal lehetne értelmesen működésre bírni. Ez nagyon nem passzol a KODI-s világba, mivel kellene majd konfigurációs részt is csinálnom bele, amit könyebb kezelni ha értelmes config fájlokba kell az adatokat visszaírni.
Syncthing-et még nem próbáltam, adok neki is egy esélyt. Néztem leírást róla, stb... Most majd a próba jön, hogy megfelel-e. Vagy lesz az amugy is használatban lévő owncloud, ha elfut a háttérben.
Talán ezek a fő irányok a megoldás keresésekor:
- Konzolos "service" (szerü) futás
- Kíbírja ha nincs épp internet, vagy szakadozik
- Felfüggeszthető / indítható (mobilnetről ne menjen, wifi-s kapcsolódás után akár azonnal induljon)
- Fájlonként valami ellenörző megoldással tartsa szinkronban amit szeretnék
- 1-2 fájlban lévő konfiguráció, amit majd szerkeszthetek valami szép GUI-val ha írok hozzá.
- Kliensen visszajelzés a szinkronizálás állapotáról
- Szerveren nyomonkövethető kliensek és állapotuk.
- https előnyös, de végülis külön gépet is kaphat belső hálózaton, ilyenkor mindegy mivel kommunikál

*** MEGOLDVA ***
A syncthing lett a nyerő megoldás.
- Ha ujra van elérése a szervernek akkor szinkronizál tovább.
- Látható a kliens állapota a szerveren.
- Jó WEB-GUI felülete van, lehet nem is kell KODI-s konfig panelt csinálni hozzá.
- REST API-n keresztül lehet lekérdezni és vezérelni is, akár konfigurációt is módosítani.
- Megállítható, elindítható maga a szinkronizáció, akár megosztásonként, eszközönként is.
- Kinyerhető belőle a szinkronizálás vége információ is, tehát lehet majd ettől függően autómatikusan frissíteni a library-t KODI-ban.
- Több eszköz, több könyvtár adható hozzá, bármilyen kombinációban.
- Működhetnet NAT és felderítős megoldással, nekem nem így, hanem belső háló szerüen, VPN-en érem el.
- Fut x86/64-en és ARM-en is, de lehet egy cipősdobozon is akár
- Service működés (van mindenféle script, pl. systemd-hez is)