Seite wählen

NETWAYS Blog

Putty mit tmux

Nachdem ich öfters mit dem Tool Putty  zu tun bekommen habe, um mich von einer Windows-Umgebung auf einen Linux-Host zu verbinden, habe ich recherchiert wie man beim verbinden einer SSH-Session von Putty direkt eine Tmux-Session auf dem Linux-Server eröffnen kann.
Also habe ich mich mit den Einstellungen von Putty etwas näher befasst, getestet und siehe da es geht doch, dann dachte ich mir, das interessiert doch bestimmt mehr SysAdmins.
Öffnet man Putty, sieht man die Session mit der Liste von Hosts und Links in der Sidebar verschiedene Dropdown-Punkte unter anderem den Punkt SSH, diesen wenn man anwählt kann man einige Einstellung vornehmen unter anderen „Remote command“ und hier trägt man „exec tmux“ ein und speichert das beim Host ab und schwups hat mein beim nächsten SSH-Login eine Tmux-Session parat, Klasse. Dann viel Spaß beim ausprobieren.

Siehe Screenshot:
Und denkt daran immer schön weiterbilden, wir haben hier tolle Trainings im Bereich OpenSource und die Macht wird mit Dir sein.

Johannes Carraro
Johannes Carraro
Senior Systems Engineer

Bevor Johannes bei NETWAYS anheuerte war er knapp drei Jahre als Systemadministrator in Ansbach tätig. Seit Februar 2016 verstärkt er nun unser Team Operations als Senior Systems Engineer. In seiner Freizeit spielt Johannes E-Gitarre, bastelt an Linux Systemen zuhause herum und ertüchtigt sich beim Tischtennisspielen im Verein, bzw. Mountainbiken, Inlinern und nicht zuletzt Skifahren.

Tmux – Multiplexer im produktiven Einsatz

Das Tool Tmux (Multiplexer) gibt es ja schon einige Zeit und so manche Linux-Distribution hat es standardmäßig bei der Installation schon an Bord. Kurz zu Tmux: Es ist ein Tool wie z.B Screen mit noch einigen bessere Möglichkeiten und Konfigurationen um z.B. SSH-Verbindungen aufzubauen.
Ich benutze es seit Jahren zur Systemadministration und möchte euch meine Erfahrung mit diesem genialen Tool zeigen.
Es muss auf beiden Systemen (Client) und Server installiert sein damit es genutzt werden kann.
Einer meiner Kollegen war erstaunt, weil er folgenden Befehl beim Erstellen eine SSH-Session gesehen hat:
sst user@remotehost wie „sst“? Normalerweise schreibt man ssh user@remotehost.
Ja, das stimmt auch, aber habe in meiner .bashrc folgende Funktion eingebaut, die mir automatisch beim der erfolgreichen Verbindung per SSH auf dem remotehost eine Tmux-Session öffnet oder sich an bestehende Session (attach) anhängt.
Die Funkion in meiner .bashrc:

function sst()  {
ssh -t $@ "tmux attach || tmux";
}

Vorteile:
Bei Updates von Servern, logged man sich per sst user@remotehost auf der Maschine ein, startet das Update und kann mit STRG+b+d sich von der Session detachen (trennen) ohne das die Session auf dem Server beendet wird. So kann man das mit vielen Servern hintereinander machen und sobald man sich erneut mit dem Host wieder verbindet kommt man automatisch wieder auf der Tmux-Session heraus um den Stand von den Updates zu prüfen uvm. Scrollen lässt ich z.B beim lesen einer Datei mit STRG+c+PageUp realisieren.
Auch das Aussehen kann mittels Konfig-Parameter geändert werden z.B Farbe der Statusbar von green zu blue usw, bei mir ist der Standard (green) eingestellt.
sst user@remotehost

Es gibt mittlerweile viele Tutorials von Tmux zur Konfiguration mittel .tmux.conf
z.B.:
LINK:
Tmux-Tutorial
Ich habe mir auch eine tmux.conf erstellt mit ein paar Features wie z.B. mir die Load von Systemen beim login anzeigt und das alle 30 Sek. Aktualisiert und mir den username + Datum + Uhrzeit anzeigt.

Folgende Optionen sind in meiner .tmux.conf definiert:

1 ########################################################################
2 #
3 # ~/.tmux.conf
4 # Konfigurationsdatei für tmux
5 #
6 ########################################################################
7
8 ########################################################################
9 # Allgemein
10
11 # History
12 set -g history-limit 1000000
13
14 # 265 Farben
15 set -g default-terminal "screen-256color"
16 set -g status-keys vi
17 # Set window notifications
18 setw -g monitor-activity on
19 set -g visual-activity on
20
21 ########################################################################
22 # Automatically set window title
23 set-window-option -g automatic-rename on
24 set-option -g set-titles on
25
26
27 set -g status-interval 30
28 setw -g window-status-current-attr reverse
29 set -g status-right-length 150
30 set -g status-right "| #(whoami)@#H | #(awk '{print $1,$2,$3}' /proc/loadavg) | %Y-%m-%d %H:%M "
31
32
33 ########################################################################
34 # Konfigurationsdatei dynamisch laden
35 unbind r
36 bind r source-file ~/.tmux.conf
37
38 # EOF

Tmux kann noch viel mehr von Vertikal/Horizontal splitten oder in der gleiche Session noch weitere öffnen, Shortcut: STRG+b+c, wechseln geht mit STRG+b+n.
Für alle User die vorher Screen benutzt haben, man kann das Key-bind auch auf STRG+a in der .tmux.conf definieren, um sich nicht umgewöhnen zu müssen.
Neu-Definition der Präfix-Taste: (.tmux.conf)
set-option -g prefix C-a
Es gibt noch viele Optimierungsmöglichkeiten, die in der Konfiguration-Datei angegeben werden können, hier werde ich noch ein paar Shortcuts empfehlen:

STRG+c+? => Gibt alle Keybindings mit Shortcuts aus
STRG+c+% => Splittet das Fenster veritial
STRG+c+" => Splittet das Fenster horizontal

Für mehr zum Thema Tmux wird man im Internet schnell fündig, als praktischer Einstieg oder Umstieg von Screen reicht dieser Betrag auf jeden Fall, in diesem Sinne „Happy Tmuxing“
Für das Thema Weiterbildung im Bereich OpenSource kann ich unsere Schulungen wärmstens empfehlen und vielleicht sieht man sich und viel Erfolg beim Umsetzen, Have Fun.

Johannes Carraro
Johannes Carraro
Senior Systems Engineer

Bevor Johannes bei NETWAYS anheuerte war er knapp drei Jahre als Systemadministrator in Ansbach tätig. Seit Februar 2016 verstärkt er nun unser Team Operations als Senior Systems Engineer. In seiner Freizeit spielt Johannes E-Gitarre, bastelt an Linux Systemen zuhause herum und ertüchtigt sich beim Tischtennisspielen im Verein, bzw. Mountainbiken, Inlinern und nicht zuletzt Skifahren.

tmux – eine Alternative zu screen

Ich habe bereits von mehreren Seiten gehört, dass die Entwicklung von screen bereits seit längerem stockt und dass mit tmux ein würdiger Nachfolger existiert. Grund genug um einen kurzen Blick darauf zu werfen.
Die Benutzung von tmux und screen ist auf den ersten Blick sehr ähnlich. Bekannte Befehle wie strg-a n, strg-a c, strg-a p und und strg-a d funktionieren in tmux fast identisch. Fast weil man strg-b anstatt strg-a benutzen muss. In der Konfigurationsdatei (.tmux.conf) ist dies aber auch schnell auf das gewohnte Shortcut umgebogen.

unbind C-b
set -g prefix C-a

Die Handhabung der Sessions ist in tmux etwas anders. tmux list-session listet alle Session auf und mit tmux attach -t <id>  nimmt man eine Session auf. Hier ist tmux etwas komfortabler als screen. Rufen mehrere User gleichzeitig eine Session auf geht tmux besser mit verschiedenen Fenstergrößen um.
Am besten gefällt mir aber der integrierte Tiling Modus von tmux. Ein strg-a % teilt das Terminal vertikal und strg-a „ teilt das Terminal horizontal. Mit strg-a <arrow> bzw. strg-a o kann man zwischen den verschiedenen Splits hin und her wechseln. Mit strg-a <space> wechselt man zwischen bestehenden default-Layouts und mit strg-a O rotiert man die Panels selbst.
Die Bindings sollte man natürlich in der .tmux.conf auf seine eigenen Gewohnheiten anpassen.

Achim Ledermüller
Achim Ledermüller
Senior Manager Cloud

Der Exil Regensburger kam 2012 zu NETWAYS, nachdem er dort sein Wirtschaftsinformatik Studium beendet hatte. In der Managed Services Abteilung ist er für den Betrieb und die Weiterentwicklung unserer Cloud-Plattform verantwortlich.