Az rclone egy parancssoros program, amelyet sokan „a felhőtárhelyek rsync-jeként”¹ emlegetnek. Több tucat tárhelyszolgáltatót ismer, köztük a pCloudot is, és mindegyiket ugyanazokkal a parancsokkal lehet kezelni. A pCloud svájci–amerikai fejlesztésű felhőszolgáltatás, amely nyílt, dokumentált API-t² kínál, ezért az rclone-nal jól együttműködik.
A hivatalos pCloud-kliens kényelmes, de grafikus felületre épül, és kevés beállítási lehetőséget ad. Az rclone ezzel szemben szkriptelhető, pontosan látni, mit csinál, és olyan funkciókat is tud, mint a titkosítás, a sávszélesség-korlátozás vagy a részletes naplózás. Ez a cikk a telepítéstől az automatikus mentésig végigvezet a legfontosabb lépéseken. Feltétel, hogy a terminál használata ne legyen idegen, és a fájlrendszer alapfogalmait ismered.
Van hozzá video is:
https://youtu.be/XH-gikzL_7A
1. Telepítés
Linux Mint alatt az rclone és a csatoláshoz szükséges FUSE-támogatás³ a csomagkezelőből is telepíthető:
sudo apt install rclone fuse3 rclone version
A tárolók verziója gyakran régebbi. Ha frissebb kell, a fejlesztők telepítőszkriptje a legújabb kiadást teszi fel:
curl https://rclone.org/install.sh | sudo bash
Aki szívesen fordít forrásból, az rclone Go nyelven íródott, így a forráskód letöltése után egyetlen go build paranccsal elkészül a bináris. A hivatalos repóban a teljes leírás megtalálható.
2. A pCloud „remote” létrehozása
Az rclone a tárhelyeket remote-oknak⁴ nevezi. Minden remote-hoz tartozik egy név, egy típus és a hozzáféréshez szükséges adatok. A beállítást az interaktív varázsló végzi:
rclone config
A lépések:
- n – új remote, a neve legyen például pcloud.
- A tárhelytípusok listájából válaszd a pCloud-ot (beírhatod: pcloud).
- A client_id és a client_secret mezőt hagyd üresen.
- Az advanced config kérdésre válaszolj n-nel.
- Az auto config kérdésre y: megnyílik a böngésző, ahol bejelentkezel a pCloudba, és jóváhagyod a hozzáférést.
A bejelentkezés után az rclone egy tokent⁵ kap, és ezt menti a konfigurációs fájlba. A fájl helyét ez a parancs mutatja:
rclone config file
Alapértelmezésben ez a ~/.config/rclone/rclone.conf. A token jelszó értékű, ezért ne tedd fel nyilvános repóba, és ne küldd el másnak.
Szerver vagy grafikus felület nélküli gép
Ha azon a gépen nincs böngésző, az auto config kérdésre válaszolj n-nel. Egy másik, böngészős gépen futtasd ezt:
rclone authorize pcloud
A parancs kiír egy tokent, amelyet visszamásolsz a szerveren futó varázslóba.
Európai fiók
A pCloudnak két adatközponti régiója van: az amerikai és az európai. Ha a fiókod európai, az API-hoz az eapi.pcloud.com állomásnevet kell használni. Az újabb rclone-verziók ezt a bejelentkezéskor általában felismerik, de ha hitelesítési hibát kapsz, ellenőrizd a hostname mezőt:
rclone config show pcloud
3. Az első lépések: listázás és másolás
A remote nevét kettőspont követi, utána jön a tárhelyen belüli útvonal. Az rclone lsd pcloud: tehát a tárhely gyökerét jelenti.
rclone lsd pcloud: # mappák listázása rclone ls pcloud:Dokumentumok # fájlok listázása méretekkel rclone lsf pcloud:Dokumentumok # rövid, szkriptbarát lista rclone about pcloud: # felhasznált és szabad hely rclone size pcloud:Fenykepek # egy mappa teljes mérete rclone ncdu pcloud: # interaktív helyfoglalás-böngésző
A legfontosabb három parancs a copy, a sync és a move:
rclone copy ~/Dokumentumok pcloud:Mentes -P rclone sync ~/Dokumentumok pcloud:Mentes -P rclone move ~/Letoltesek/kesz pcloud:Archivum -P
A -P kapcsoló folyamatjelzőt ír ki. A három parancs közötti különbség lényeges:
- A copy csak másol, a célban semmit nem töröl.
- A sync a célt a forrás pontos tükrévé teszi, vagyis ami a forrásban nincs meg, azt a célból törli.
- A move átmásolja a fájlokat, majd a forrásból törli őket.
A copy és a sync is idempotens⁶: ugyanazt kétszer lefuttatva nem keletkezik duplikáció, a második futás csak az eltéréseket pótolja.
4. Biztonságos szinkronizálás
A sync a leggyakoribb hibaforrás, mert egy felcserélt forrás–cél sorrend a legfontosabb adataid törlését is jelentheti. Néhány szokás felvétele sokat segít.
Mindig próbáld előbb szárazon. A --dry-run kapcsoló kiírja, mit csinálna a program, de nem módosít semmit:
rclone sync ~/Dokumentumok pcloud:Mentes --dry-run -v
Korlátozd a törlések számát. Ha egy futás a megadottnál több fájlt törölne, az rclone leáll:
rclone sync ~/Dokumentumok pcloud:Mentes --max-delete 20
Archiváld a felülírt és törölt fájlokat. A --backup-dir a régi változatokat egy külön mappába teszi, ahelyett hogy eldobná őket:
rclone sync ~/Dokumentumok pcloud:Mentes \ --backup-dir pcloud:Mentes_archivum/$(date +%F)
Ez a megoldás az egyszerű, de hatékony „változatkezelés” alapja: minden napról megmarad, mi változott.
Ellenőrizd az eredményt. Az rclone check a forrást és a célt hasonlítja össze:
rclone check ~/Dokumentumok pcloud:Mentes --one-way
A pCloud API ellenőrző összegeket⁷ is ad a fájlokról, ezért az rclone a méret és az idő mellett a tartalmat is össze tudja vetni. Az --one-way azt jelenti, hogy csak a forrásból hiányzó vagy eltérő elemeket keresi a célban.
5. Szűrés
Gyakran nem a teljes mappát szeretnéd feltölteni. Az rclone szűrési szabályai⁸ mintákkal dolgoznak:
# ideiglenes fájlok és a gyorsítótár kihagyása
rclone copy ~/Projektek pcloud:Projektek \
--exclude '*.tmp' --exclude 'node_modules/**' --exclude '.cache/**'
# csak a képek
rclone copy ~/Fenykepek pcloud:Fenykepek \
--include '*.{jpg,jpeg,png}'
# csak az elmúlt 7 napban módosított fájlok
rclone copy ~/Dokumentumok pcloud:Friss --max-age 7d
# 100 MB-nál nagyobb fájlok kihagyása
rclone copy ~/Letoltesek pcloud:Letoltesek --max-size 100MHa sok szabályod van, érdemes egy fájlba gyűjteni, és a --filter-from kapcsolóval megadni:
rclone sync ~/Projektek pcloud:Projektek --filter-from ~/.config/rclone/szurok.txt
A fájlban soronként egy szabály áll, - jellel kezdődik a kizárás, + jellel a belefoglalás:
- *.tmp - node_modules/** - .cache/** + **
A szabályok sorrendje számít: az első találó szabály dönt, ezért az utolsó + ** sor jelzi, hogy minden más mehet.
6. Csatolás könyvtárként
Ha a pCloudot úgy szeretnéd használni, mint egy helyi mappát, az rclone képes csatolni. Ehhez szükség van a már említett FUSE-ra.
mkdir -p ~/pcloud rclone mount pcloud: ~/pcloud --vfs-cache-mode writes
A parancs előtérben fut, a terminál lezárásával a csatolás is megszűnik. Háttérben így indítható:
rclone mount pcloud: ~/pcloud --vfs-cache-mode writes --daemon
Leválasztás:
fusermount3 -u ~/pcloud
A VFS gyorsítótár módjai
A csatolt tárhely nem valódi lemez, ezért az rclone egy virtuális fájlrendszer-réteget⁹ (VFS) használ a fájlok kezelésére. A --vfs-cache-mode kapcsoló szabja meg, mennyit tárol helyben:
| Mód | Viselkedés | Mikor jó |
|---|---|---|
| off | semmit nem tárol, a fájlok csak soros olvasással és írással érhetők el | egyszerű fájlmásolás |
| minimal | csak a megnyitott, írható és olvasható fájlokat gyorsítótárazza | ritkán használt, kisebb igények |
| writes | az írt fájlokat gyorsítótárazza | általános használatra jó kompromisszum |
| full | az olvasott és írt adatokat is tárolja | videólejátszás, alkalmazások közvetlenül a csatolásról |
A full módnál érdemes korlátot szabni a helyi gyorsítótárnak:
rclone mount pcloud: ~/pcloud \ --vfs-cache-mode full \ --vfs-cache-max-size 5G \ --dir-cache-time 10m
Automatikus csatolás belépéskor
A csatolás a felhasználói systemd¹⁰ szolgáltatással indítható el. A ~/.config/systemd/user/rclone-pcloud.service fájl tartalma:
[Unit] Description=pCloud rclone mount After=network-online.target [Service] Type=notify ExecStart=/usr/bin/rclone mount pcloud: %h/pcloud --vfs-cache-mode writes ExecStop=/bin/fusermount3 -u %h/pcloud [Install] WantedBy=default.target
Aktiválás:
systemctl --user daemon-reload systemctl --user enable --now rclone-pcloud.service
Az rclone pontos útvonalát a which rclone parancs mutatja meg. Ha a szolgáltatás nem indul, a naplót a journalctl --user -u rclone-pcloud.service paranccsal nézheted meg.
7. Titkosítás a crypt remote-tal
A pCloud a fájlokat a szolgáltatónál tárolja, ezért ha érzékeny adatot raksz fel, érdemes kliensoldali titkosítást¹¹ használni. Az rclone erre a crypt típusú remote-ot kínálja, amely a már meglévő pCloud-remote fölé épül.
A rclone config varázslóban hozz létre egy új remote-ot titkos néven, típusa legyen crypt, a remote mező pedig mutasson egy pCloud-mappára, például pcloud:Titkositott. A varázsló kéri a jelszót, és opcionálisan egy második jelszót, a „sót”. Mindkettőt őrizd meg máshol is, mert elvesztésük esetén az adatok nem állíthatók vissza.
Használata ugyanolyan, mint bármely más remote-é:
rclone copy ~/Szemelyes titkos:Szemelyes -P rclone ls titkos: rclone ls pcloud:Titkositott
A második paranccsal a titkosított oldalt látod olvashatóan, a harmadikkal azt, ahogy a pCloud tárolja: értelmetlen nevű, titkosított fájlokat. Alapértelmezésben a fájlnevek is titkosítva vannak, ami a szolgáltató felől nézve extra védelmet ad.
Fontos tudni, hogy a titkosított fájlokat a pCloud webes felületén nem tudod elolvasni vagy előnézetben megnyitni. Ez a titkosítás ára.
8. Automatikus mentés szkripttel és időzítővel
A gyakorlatban a legtöbben egy napi mentést szeretnének. A következő szkript az eddig tárgyalt biztonsági elemeket egyesíti. Mentsd például a ~/bin/rclone-mentes.sh fájlba:
#!/bin/bash set -euo pipefail FORRAS="$HOME/Dokumentumok" CEL="pcloud:Mentes/Dokumentumok" ARCHIV="pcloud:Mentes/_archivum/$(date +%F)" NAPLO="$HOME/rclone-mentes.log" rclone sync "$FORRAS" "$CEL" \ --backup-dir "$ARCHIV" \ --max-delete 50 \ --exclude '*.tmp' \ --transfers 4 \ --log-file "$NAPLO" \ --log-level INFO
Futtathatóvá kell tenni a chmod +x ~/bin/rclone-mentes.sh paranccsal. Az idézőjelek a szóközt tartalmazó útvonalak miatt fontosak, a set -euo pipefail pedig azt biztosítja, hogy hiba esetén a szkript azonnal leálljon.
Az időzítést a systemd időzítője végzi, amely a cronnál megbízhatóbb, mert pótolja a kihagyott futásokat. Két fájl kell hozzá. A ~/.config/systemd/user/rclone-mentes.service:
[Unit] Description=Napi mentés pCloudra After=network-online.target [Service] Type=oneshot ExecStart=%h/bin/rclone-mentes.sh
És a ~/.config/systemd/user/rclone-mentes.timer:
[Unit] Description=Napi pCloud-mentés időzítője [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target
A Persistent=true azt jelenti, hogy ha a gép a kijelölt időpontban ki volt kapcsolva, a következő bekapcsoláskor a mentés lefut. Bekapcsolás és ellenőrzés:
systemctl --user daemon-reload systemctl --user enable --now rclone-mentes.timer systemctl --user list-timers
9. Kétirányú szinkron: a bisync
A sync egyirányú. Ha két helyen is módosítasz, például a laptopodon és a pCloud webes felületén, a kétirányú szinkronra az rclone bisync való. Az első futtatásnál meg kell adni a --resync kapcsolót, amely kialakítja a kiinduló állapotot:
rclone bisync ~/Dokumentumok pcloud:Dokumentumok --resync --dry-run rclone bisync ~/Dokumentumok pcloud:Dokumentumok --resync
Ezután már egyszerűen futtatható:
rclone bisync ~/Dokumentumok pcloud:Dokumentumok
A bisync viszonylag új és bonyolultabb funkció, mert ütközéseket is kezelnie kell, ezért az első kipróbálás legyen szárazon futtatva, és fontos adatoknál tartsd meg a külön mentést is.
10. Gyakori problémák
- Lejárt vagy érvénytelen token. Ha a program hitelesítési hibát jelez, a rclone config reconnect pcloud: paranccsal újra bejelentkezhetsz.
- Hibás régió. Európai fiók esetén ellenőrizd az eapi.pcloud.com állomásnevet.
- Lassú feltöltés sok kis fájlnál. Az API hívásonként dolgozik, ezért sok apró fájl lassabb, mint néhány nagy. Próbáld növelni az --transfers és a --checkers értékét, de mértékkel.
- Megtelt a kuka. A pCloud törölt fájljai a kukába kerülnek, és ott helyet foglalnak. Az rclone cleanup pcloud: kiüríti a kukát, ezt viszont csak akkor használd, ha biztos vagy benne, hogy semmire nincs már szükséged belőle.
- Nem indul a csatolás. Ellenőrizd, hogy a csatolási könyvtár létezik és üres, a FUSE telepítve van, és a felhasználó jogosult a /dev/fuse használatára.
- Hibakeresés. A -vv kapcsoló részletes kimenetet ad, a --log-file pedig fájlba írja azt.
Összegzés
Az rclone és a pCloud együtt rugalmas, ellenőrizhető és szkriptelhető megoldás a felhőtárhely Linux alatti használatára. A copy, sync és move parancsokkal a legtöbb feladat megoldható, a --dry-run, --max-delete és --backup-dir kapcsolók pedig a véletlen adatvesztés ellen védenek. A mount kényelmes, a crypt titkosítást ad, a systemd időzítővel pedig a mentés teljesen automatizálható.
Ajánlott haladási sorrend: először tanuld meg a copy és sync parancsokat szárazon futtatva, utána állítsd be a csatolást, végül építsd fel az automatikus, titkosított mentést.
Lábjegyzetek
¹ rsync – ismert Linux-program fájlok hatékony másolására és szinkronizálására. Csak a megváltozott részeket viszi át, ezért gyors. Az rclone hasonló elven működik, de felhőszolgáltatókkal is képes dolgozni.
² API (Application Programming Interface) – programozási felület, amelyen keresztül egy program a szolgáltatás funkcióit közvetlenül elérheti, böngésző nélkül.
³ FUSE (Filesystem in Userspace) – a Linux-kernel egyik szolgáltatása, amellyel a fájlrendszer felhasználói programként is megvalósítható. Az rclone ennek segítségével jeleníti meg a felhőt könyvtárként.
⁴ Remote – az rclone fogalma egy beállított távoli tárhelyre. A nevet a konfigurációban te adod meg, és a parancsokban a név utáni kettőspont jelzi (például pcloud:).
⁵ Token – hozzáférési kulcs, amelyet a szolgáltató a bejelentkezés után ad. Ezzel az rclone jelszó megadása nélkül, a te nevedben dolgozhat. Aki megszerzi, hozzáférhet a tárhelyedhez.
⁶ Idempotens – olyan művelet, amelyet többször egymás után végrehajtva is ugyanaz az eredmény, mint egyetlen végrehajtás után.
⁷ Ellenőrző összeg (hash) – egy fájl tartalmából számolt rövid érték, például MD5 vagy SHA-1. Ha két fájl összege megegyezik, tartalmuk gyakorlatilag biztosan azonos. A támogatott fajták a pCloud régiójától függhetnek.
⁸ Minta (glob) – helyettesítő karaktereket használó fájlnévszűrés. A * bármilyen karaktersort jelent egy szinten belül, a ** az alkönyvtárakon át is érvényes.
⁹ VFS (Virtual File System) – virtuális fájlrendszer-réteg. Az rclone-ban ez kezeli a gyorsítótárat és a csatolt tárhely fájlműveleteit.
¹⁰ systemd – a legtöbb mai Linux-disztribúció init- és szolgáltatáskezelő rendszere. A --user kapcsolóval a felhasználó saját szolgáltatásai és időzítői kezelhetők, rendszergazdai jog nélkül.
¹¹ Kliensoldali titkosítás – az adatokat még a saját gépeden titkosítod, mielőtt feltöltődnek. A szolgáltató így csak értelmezhetetlen adatot lát.
