Všechny vzdálené disky jsou seřazeny ve svých adresářích. Nastavili jsme si práva a můžeme se dostat, kam jen chceme. Proč je to však tak daleko? Uvažujme třeba typický projekt. Projekt, který běží na jistém stroji (který se jmenuje podle něj), běží pod prostředím uživatele (který se samozřejmě jmenuje podle něj) a je v Pythonu (takže má v sobě adresář stejného jména). Takže jediná správná cesta ke zdrojákům je v adresáři /mnt/projekt/home/projekt/projekt/projekt/ . Někdy struktura pokouší k zbláznění.
Jak se rychle zorientovat na disku, který má v sobě další disky?
Rozcestník
Pátral jsem po nejlepším řešení jak se prohrabovat daty, a překvapilo mě, že internet neoplývá množstvím dobrých tipů.
Zvažoval jsem využít záložky, pak poměrně úspěšně laboroval, jak záložky filtrovat podle místa na disku, kde se nacházím (složitá UserAction, s kterou vás nebudu otravovat).
Nakonec jsem ale přilnul k prostému a příjemnému řešení – starým dobrým zástupcům. INDEX
V díle o Krusaderu jsem zmiňoval, jak si udělat zkratku na snadnou tvorbu symlinků. Založil jsem si rozcestníkovou složku /mnt/index, kde jsou složky podle počítačů, které spravuji, ty však obsahují hromadu zástupců do dalších hlubších složek a souborů. Protože co na vašem stroji spravujete? Nějaký konkrétní projekt, který má zdrojové soubory, pár systémových adresářů… a nepotřebujete se dolovat do cílového disku vždycky celou strukturou od kořene.
Pokud jste postupovali podle tipů z minulého dílu, takže používáte mount_dir.py, můžete rovnou mountovat názvy počítačů v /mnt/index, aniž cokoli kdekoli dalšího někam zadáváte. Už žádný fstab, nic.
Daleko terminálem
Přes všechny přednosti správce souborů jsou v životě lidském četné chvíle, kdy si musíte vyhrnout rukávy a jít přemýšlet přímo na příkazovou řádku vzdáleného stroje. Jejž můžete nastokrát mít krásně namountovaný, ale co naplat, když se v terminálu šplháte znovu tam, kam jste dolezli rychlostí blesku ve správci. Jedno řešení je nechávat běžet na vzdáleném serveru nějaký tmux, který vám pohlídá relaci i přes pád ssh.
Jak báječné by ale bylo, kdybychom mohli z Krusaderu spustit terminál přímo v adresáři, kde jsme! Pro lokální počítač je takové chování normální, Tools / Start terminal here vám jej otevře v aktuální složce. Ovšem mountované adresáře… otevírá také v aktuální namountované složce lokálního počítače. Spustíte-li program, spustí se na lokálním počítači, nikoli na vzdáleném. To lze napravit několika údernými příkazy v souboru start_terminal_ssh.sh, jehož obsah zkopírujte do svého .bashrc souboru.
Co se stane? Jakmile se otevře nový terminál, úderné příkazy zjistí, jestli se nachází na cestě /mnt, kam jsme dali kromě fstabu všechny disky. V takovém případě si z fstabu načte co potřebuje, a rovnou se přihlásí na vzdálený server do správné složky.
Protože mám hrozně nerad složité machinace v bashi, využívám ještě miniaturní knihovničku pz, kterou nainstalujete přes: pip3 install pz
Nejvzdálenější editace
Posledních šest dílů blogu o discích jsem směřoval sem, k tomuto odstavci.
Terminál máme všichni rádi, protože funguje obecně lépe než GUI aplikace. Vývojář změní pořadí tlačítek a léta zkušeností s GUI jsou ta tam. Podobně jako myš používáme, když aplikaci dostatečně nevěříme; jako opěrný bod ale přichází na řadu klávesnice, když jsme si sebou jisti, perfektní GUI nahradí příkazovou řádku. A pro editaci textových souborů je tady prostě skvělý Kate. Edituje lokální soubory, edituje i vzdálené namountované soubory. To se ale bavíme pouze o souborech, které patří danému uživateli.
Pokud zkoušíme editovat cizí lokální soubory, Kate si řekne, že na zápis nemá právo a požádá nás o právo roota. U namountovaných cizích souborů je nám ale právo místního roota k ničemu, protože místní root je úplně cizí člověk než vzdálený root. Zdá se tak, že pro vzdálené cizí soubory nelze Kate použít. Chcete třeba jenom upravit nginx, jednu malou změnu, malý port. Nechcete kvůli tomu startovat příkazovou řádku a v ní textový editor.
Na scénu přichází skript remote_edit.sh. Povolejte jej – zjistí, zda je třeba heslo, soubor přeuloží na náš lokální disk a nastaví na něj systémový hledáček. Jakmile dojde ke změně lokální kopie (kterou jsme upravili), nahraje ji zpět na vzdálený server a nastaví jí správná práva i původního vlastníka. Nejedná se o řešení pro nějaké velké čachry, ale ohromně šetří čas.
Přitom nepotřebuje žádnou velkou přípravu. V Krusaderu vytvořte uživatelskou akci a už nepřemýšlejte, jestli jste na lokálním nebo vzdáleném disku: gnome-terminal -- /path/to/remote_edit.sh %aCurrent%