Byobu szerverekre

leslie küldte be szo, 2009-09-26 16:30 időpontban

A Byobu egy terminál multiplexer, vagyis egy olyan eszköz, amivel egyetlen konzolt sokszorozhatunk meg. Ez különösen akkor hasznos, ha távolról, SSH-n jelentkezünk be egy gépre. Ennél azonban a Byobu sokkal többet is tud: lehetőség van arra is, hogy egy ilyen képernyőt lecsatlakoztassunk, majd később máshol visszacsatlakozzunk, és pontosan ugyanazt kapjuk vissza, amit otthagytunk. Ez például akkor rendkívül hasznos, ha egy gépről a rendszergazda elindít egy hosszabb folyamatot, majd bezárja az SSH kapcsolatot, és később visszanéz rá – akár egy teljesen másik kliensről. Ez pedig még mindig csak a funkciók töredéke: egyszerre több helyről nézhetjük ugyanazt a terminált, lehetőségünk van a korábbi üzenetek visszagörgetésére, kivágásra és beillesztésre, és mindenféle hasznos információk megjelenítésére.
Forrás: mogorvamormota.hu

honlap, ppa: https://launchpad.net/byobu

Sokat használom a screen-t és megerősítem, hogy az említett funkciókat szinte mindet adja... talán több helyről nem néztem ugyanazt a terminált. Bár nem tudom ennek mi értelme, ha el tudom engedni és máshonnét nézni, hisz egy helyen akarok dolgozni.... talán mások által megfigyelés?

sőt, még írni is lehet több helyről, sőt még jogokat is lehet osztani júzereknek akik csatlakozhatnak a terminálhoz :) és hát a screen nem egy mai darab. Az meg, hogy csicsát ragasszunk egy amúgy kiválóan működő hétpróbás dologra többnyire sok haszonnal nem kecsegtet. No bajnak azért nem baj, csak sok értelme nincs :)

En ugy tudom, hogy ezt egyenesen a screenre fejlesztik. Azt akarjak, hogy sokkal `baratsagosabb` legyen (es szerintem megy is nekik).

En is csak a mogorvamormota.hu oldalon olvastam rola. Ott a byobu tag alatt leirja a szerzo reszletesen, hogy miben mas.

Szóval ez a byobu azonos a screen-profiles nevű toollal és screen függőséggel rendelkezik azaz a screen-t egészíti ki, cicomázza fel. Még nem próbáltam ki, a hivatkozásokat is csak most olvastam át kicsit jobban.

magam a következõ beállításokkal használom a screen-t:

code {background-color: black; color: #0f0; }

cat .screenrc<br />
defutf8 on<br />
startup_message off<br />
altscreen on<br />
vbell off<br />
deflogin off<br />
activity      "Activity in (%n) %t~"<br />
bell     "♫ ♪ (( BELL )) ♪ ♫   (%n) %t~"    # bár az utf8 karaktereket nem tudtam elõcsalni belõle...<br />
vbell_msg     "♫ ♪ (( BELL )) ♪ ♫"<br />
# fix 'Mouse actions not passed through' bug<br />
termcapinfo xterm* ti@:te@<br />
termcapinfo linux* ti@:te@<br />
hardstatus on<br />
hardstatus alwayslastline<br />
hardstatus string '%{= bg}[ %{+b Y}%H%{= g} ][geshifilter-questionmarkphp]= %{w}%?%-Lw%?%{+b w}%n%f %t%?%?%{-b w}%?%+Lw%= %{= g}][ %{= r}%l %{+b G}%0c%{= g} ]%{d}&#039;&#10;bindkey &quot;^[[1;2D&quot; prev  # shift-left&#10;bindkey &quot;^[[1;2C&quot; next  # shift-right&#10;bind s windowlist -m -b&#10;bufferfile $HOME/screen-buffer&#10;bind b eval &quot;writebuf&quot; &quot;exec chmod 0600 $HOME/screen-buffer&quot; &quot;exec xclip -i $HOME/screen-buffer&quot;&#10;screen -l $SHELL            # egy login ablak&#10;screen -t root sh -c &#039;sudo -i || su -&#039;       # egy root-shell&#10;screen -t mc bash -c mc       # egy filemanager

</div>

Az ablak title-ket bash prompt-ból írom át:
A prompt-beállító szkriptben:
<div style="background: black">
case &quot;$TERM&quot; in&#10;screen)&#10;  PS1=&quot;$PS1\[\033k&lt;\w&gt; \$( HISTTIMEFORMAT=&#039;%H:%M &#039; history 1 | sed -e &#039;&quot;&#039;s/^\\s*[0-9]\\+\\s\\+\\(\\(\\S\\+\\s*\\)\\{0,4\\}\\).*/\\1/;&#039;&quot;&#039; )\033\\\\\]&quot;&#10;;;&#10;esac
</div>

kifejtve:
case-ban más terminálokra más prompt-ot írhatunk, pl. a screen a \033kAblakcím\033\, míg az xterm a \033]0;Ablakcím\007 eszkép szekvenciát alkalmazza az Ablakcím beállítására.
Kezdetben $PS1 az alap prompt, amihez hozzáfũzöm a screen ablakok címét eképpen:
&lt;aktuális könyvtár&gt; 08:23 echo a legutóbbi parancs eleje
<b>\w</b> - aktuális könyvtár (a bash cseréli ki minden kiprinteléskor)
<b>$()</b> - parancsbehelyettesítés, a dollárt ki kell eszképelni, mert másképp itt helyben a PS1= után dolgozza fel s úgy nem fog változni.
<b>history 1</b> - a bash beépített parancs history-ja utolsó sora, HISTTIMEFORMAT helyi változó beállítása miatt a futtatás idejével prefixálva (óra:perc formátumban).
<b>sed -e '...'</b> - a sed-nek ki kell eszképelni a csoportalakító és többszörösítõ zárójeleket és a plusz + jelet is; a regexp meg leveszi a parancs sorszámát, és max. 4-1 szót tart meg a parancsból.
[/geshifilter-questionmarkphp]

meg van még egy ilyen scriptecske:
rlwrap -S "$STY&gt; " sh -c 'while read; do screen -S "'"$STY"'" -X $REPLY; done'
screen-ben indítva vagy STY environment beállítása után azon kívül is screen-konzolt ad. kényelmesebb, mint Ctrl-A kettõspontot nyomogatni.