So hilft Ihnen tmux bei der Verwaltung Ihres Cloudways-Servers über SSH

Veröffentlicht: 2020-03-06
tmux
Folgen Sie @Cloudways

Dieser Artikel ergänzt und erweitert ein Video, das ich über die Verwendung von SSH und tmux für die Verwaltung meiner Cloudways-Server erstellt habe. Im Video sehen Sie, wie ich mit tmux SSH-Verbindungen zu mehreren Cloudways-Servern verwalte und das Kommandozeilen-Tool htop verwende, um die Serverlast zu analysieren.

Das vollständige Video können Sie sich hier ansehen:

Da dieses Gespräch viel mehr beinhaltet als nur das, was ich im Video behandelt habe, wollte ich diesen kostenlosen Artikel schreiben und mehr Einblicke geben, warum ich tmux verwende und warum ich auf SSH für die Serververwaltung verlasse.

Um Ihnen ein wenig Hintergrundwissen zu geben, ich bin kein ausgebildeter Serveradministrator – nicht einmal ein ausgebildeter Webentwickler. Alles, was ich tue, ist Autodidakt. Für mich ist Learning by Doing mein liebster Ansatz, um Fähigkeiten zu erwerben oder Herausforderungen anzugehen. Ich bin kein Freund der formalen Bildung mehr (ich habe den Master in IT-Sicherheit abgebrochen) und glaube stattdessen daran, mich mit Technologie zu beschäftigen, um zu verstehen, wie sie funktioniert.

Bitte behalte diesen Ansatz im Hinterkopf, wenn du dir das Video ansiehst und diesen Artikel durchliest. Wie Sie sehen werden, habe ich den Artikel in zwei Abschnitte unterteilt. Jeder könnte ein wirklich langer Artikel oder wahrscheinlich mehrere Artikel für sich sein, aber ich dachte, sie passen in diesem Zusammenhang gut zusammen.

  • Verwalten Ihres Servers über SSH
  • Warum sollten Sie die Befehlszeile verwenden?
  • Anwendungsfall: Debugging der Serverlast mit htop
  • Anwendungsfall: Verwendung von WP-CLI auf Cloudways-Servern
  • Warum habe ich tmux empfohlen?

Verwalten Ihres Servers über SSH

Einer der Vorteile der Verwendung von Cloudways für das Hosting besteht darin, dass Sie über die Befehlszeile auf Ihre Server und Ihre Anwendungen zugreifen können. Obwohl es kein Root-Zugriff ist, können Sie viele Dinge auf der Befehlszeile tun.

Aus meiner Sicht ist es vernünftig, dass ich keinen Root-Zugriff auf meine Cloudways-Server bekomme. Stellen Sie sich vor, wie die Wartung von 20.000 Servern aussieht, wenn jeder Serveradministrator seine eigenen Tools und Pakete installiert. Das ist eine unmögliche Leistung. Vor diesem Hintergrund bietet uns Cloudways Zugriff auf WP-CLI und viele andere Standardtools. Und das ist eine Menge, mit dem Sie arbeiten können, um Ihre Server zu warten und über die Aktivitäten der Server auf dem Laufenden zu bleiben.

Es hat eine Weile gedauert, bis ich die Vorteile der Verwaltung meiner Server über SSH verstanden habe, aber jetzt sehe ich keine andere Möglichkeit, diese Angelegenheit zu handhaben. Meine Hauptgründe für die Befehlszeile sind:

  • Ich muss nicht auf das Laden einer Webanwendung warten, um zu sehen, was ich sehen möchte.
  • Der Login wird über SSH-Schlüssel verwaltet, sodass ich nicht unnötig mein Passwort eingeben muss.
  • Ich kann SSH-Sitzungen am Laufen halten und muss mich nicht um das An- und Abmelden kümmern.
  • Ich habe Zugriff auf WP-CLI und kann Dinge tun, die ich im regulären WP-Admin-Dashboard nicht tun kann.
  • Ich kann die Aufgabenausführung mit Cron-Jobs und Skripten automatisieren.
  • Ich muss meine Hände nicht von der Tastatur entfernen, um die Maus zu bedienen und kann sie entspannt halten.

Bitte beachten Sie, dass Sie als Voraussetzung eine Art SSH-Client installiert haben sollten. Unter Linux oder Mac können Sie einfach die vorinstallierten Terminal-Anwendungen verwenden. Wenn Sie ein Windows-Benutzer wie ich sind, können Sie entweder PuTTY installieren oder die Bash verwenden , die mit dem Windows-Subsystem für Linux geliefert wird (was ich bevorzuge).

Wenn Sie keine zusätzliche Software installieren möchten , können Sie auch ein SSH-Terminal aus der Cloudways-Konsole öffnen, aber das ist keine Lösung, die ich für den täglichen Gebrauch empfehlen würde. Wie Sie sehen werden, besteht das Schöne an der Verwendung einer Befehlszeilenschnittstelle darin, dass Sie sich nicht bei einer Webanwendung wie der Cloudways-Konsole anmelden müssen.

Warum sollten Sie die Befehlszeile verwenden?

Die Verwendung der Befehlszeile fühlte sich zunächst sehr einschüchternd an. Das gilt für die Serververwaltung genauso wie für die Verwendung der Befehlszeile auf meinem lokalen PC oder Mac. Die meisten meiner Kenntnisse über die Befehlszeile stammen aus Tutorials, die ich im Internet gelesen habe, oder von einem Freund von mir, der bei Cisco arbeitet. Es ist alles Learning by doing.

Insbesondere bei der Konfiguration eines Servers oder eines Dienstes wie eines Webservers oder eines serverseitigen Caches kann es leicht zu Fehlern kommen. Nicht zu wissen, was ich tat und keine Erfahrung mit der Verwendung von Befehlszeilentools zu haben, gab mir nicht unbedingt das Vertrauen, meine Server über SSH zu verwalten.

Irgendwann bekam ich den Kater und entdeckte die Vorteile der Verwendung der Befehlszeile, indem ich drei Regeln befolgte:

  1. Machen Sie immer einen Schritt nach dem anderen und versuchen Sie genau zu verstehen, was Sie in diesem Schritt tun.
  2. Haben Sie immer einen Wiederherstellungspunkt oder ein Backup für den Fall, dass Sie Dinge kaputt machen.
  3. Testen Sie immer in einer sicheren Umgebung und führen Sie niemals ein Befehlszeilentool zum ersten Mal auf einer Live-Website aus.

Mit diesen Regeln wusste ich, dass nichts wirklich schief gehen konnte. Ich habe eine Staging-Version meiner Live-Website auf Cloudways mit der " Clone "-Funktionalität erstellt und bin gerade ihrem Tutorial zum Anmelden über SSH gefolgt. Nachdem ich mich eingeloggt hatte, fing ich an, mit WP-CLI und anderen einfachen Serververwaltungstools wie htop herumzuspielen.

Wenn Sie einen ähnlichen Ansatz verfolgen, sollten Sie in einer guten Position sein, um sicher zu lernen, wie man die Befehlszeile verwendet. Es hilft, einen Hintergrund in der Entwicklung oder in der IT zu haben, aber ich denke nicht, dass es notwendig ist. Betrachten Sie einfach die Befehlszeile als eine Möglichkeit, mit Ihrem Computer zu interagieren, genau wie Sie es mit der Maus auf dem Desktop tun. Besonders mit WP-CLI ist es einfach, die ersten Schritte auf der Befehlszeile zu machen und die Ergebnisse auf Ihrem WP-Admin-Dashboard anzuzeigen.

Anwendungsfall: Debugging der Serverlast mit htop

Im Video sehen Sie, dass ich das Tool htop verwende, um die Serverressourcennutzung zu analysieren. htop ist ein Standardtool, das Ihnen in Echtzeit Einblicke in das aktuelle Geschehen auf Ihrem Server gibt. Da die Überwachungsdaten der Cloudways-Plattform manchmal leichte Verzögerungen aufweisen, ist es äußerst nützlich , mehr über die Verwendung von htop zu erfahren .

Immer wenn mich der Cloudways-Bot benachrichtigt, dass die CPU- oder RAM-Auslastung steigt, melde ich mich per SSH am jeweiligen Server an und führe htop aus. Innerhalb von Sekunden kann ich den Prozess und die Anwendung identifizieren, die die Ressourcen beansprucht. Was mit der Cloudways-Webplattform ein oder zwei Minuten dauern würde, ist innerhalb von 10-20 Sekunden erledigt.

So sieht htop in der Praxis aus:

htop

Der Debug-Prozess besteht dann darin, die Anwendung, die ungewöhnlich viele Serverressourcen beansprucht, über htop zu identifizieren und diese Anwendung genauer zu untersuchen. Wenn Sie sehen, dass ein PHP-Prozess dieser Anwendung CPU oder RAM beansprucht, wissen Sie, dass es sich wahrscheinlich um ein WP-Plugin oder Ihr Thema handelt. Es kommt oft vor, dass sich über WP-Cron geplante Prozesse angehäuft haben und nun alle auf einmal ausgeführt werden, wodurch Ihr Server überlastet wird.

Wenn Sie sehen, dass ein MySQL- oder MariaDB-Prozess die Serverressourcen beansprucht, wissen Sie, dass Sie nicht in die Plugins oder das Theme schauen müssen, sondern in die Datenbank. Ich habe gesehen, dass Datenbanken ihre Indizes verloren haben und daher SQL-Abfragen extrem langsam ausgeführt werden. Es kann lange dauern, bis Sie die Ursachen des Problems identifizieren, wenn Sie nicht wissen, ob PHP oder MySQL die Probleme verursacht.

Wie Sie sich vorstellen können, ist dies nur die Spitze des Eisbergs dessen, was htop leisten kann. Hier ist eine Liste praktischer Htop-Beispiele , die mein Beispiel auf die nächste Stufe heben.

Anwendungsfall: Verwendung von WP-CLI auf Cloudways-Servern

Zu wissen, wie man WP-CLI verwendet, kann ein echter Wendepunkt für Ihren täglichen Entwicklungsansatz sein. Ein Vanilla-WP installieren, ohne die Maus zu bewegen? Kein Problem. Alle Transienten löschen mit Installation eines zusätzlichen Plugins? Einfach. Analysieren Sie, welche Hooks die Ladezeit Ihrer Website am meisten verlangsamen? Sie können dies auch mit WP-CLI tun.

Es ist wirklich erstaunlich, dass Cloudways uns über die Befehlszeile Zugriff auf WP-CLI bietet. Sie können ganz einfach Tools erstellen, die Ihren Standard-WordPress-Plugin-Stack und -Design installieren. Oder Sie können WP-CLI verwenden, um innerhalb von Sekunden oder Minuten ein Datenbank-Backup Ihrer Site herunterzuladen (nun, das hängt von der Größe Ihrer Datenbank ab).

Hier ist der Haken: Sie müssen die Befehlszeile verwenden, um auf WP-CLI zuzugreifen. Und so müssen Sie sich per SSH bei Ihrem Server anmelden, um WP-CLI-Befehle auf Ihren von Cloudways gehosteten Websites auszuführen.

Wenn es für Sie keinen anderen Grund gibt, sich mit der Befehlszeile vertraut zu machen und mit SSH zu beginnen, um Ihre Server zu verwalten, sollte WP-CLI es sein. Lassen Sie mich Ihnen nur drei Beispiele nennen, die es wert sind, ausprobiert zu werden:

1. Optimieren und Reparieren Ihrer Datenbank

Da wir PhpMyAdmin nicht auf Cloudways erhalten, ist es praktisch, Ihre WordPress-Datenbank mit WP-CLI zu optimieren und zu reparieren. Durch die Verwendung von wp db optimize und wp db Repair können Sie Ihre Datenbank auf den neuesten Stand bringen und ihre Prozesse stabilisieren.

2. Erstellen eines Child-Themes innerhalb von Sekunden

Ja, Sie könnten ein Child-Theme erstellen, indem Sie manuell ein neues Verzeichnis mit der jeweiligen style.css und functions.php in wp-content/themes erstellen und hochladen – aber warum sich die Mühe machen, wenn Sie einen einfachen Befehl ausführen können, der alles für Sie erledigt?

Kein Blick in den Codex mehr, um zu überprüfen, ob sich Spezifikationen geändert haben, keine SFTP-Anmeldungen und Dateiübertragungen mehr. Führen Sie einfach den folgenden Befehl in der Befehlszeile aus und Ihr Child-Theme ist einsatzbereit:

wp scaffold child-theme SLUG –parent_theme=SLUG –theme_name=TITLE –author=FULL-NAME –author_uri=URI –theme_uri=URI –activate –force

Beachten Sie, dass dieser Befehl das Child-Theme standardmäßig aktiviert. Wenn Sie das nicht möchten, lassen Sie „–activate –force“ am Ende des Befehls weg.

3. Erstellen Sie Dummy-Inhalte für Entwicklungszwecke

Alle Entwickler benötigen Daten, mit denen sie während ihrer Entwicklungsphasen arbeiten können. Was wäre, wenn Sie Beiträge und Seiten im WP-Admin-Dashboard nicht manuell erstellen und duplizieren müssten? Was wäre, wenn WP-CLI mit einem einfachen Befehl jede Menge Dummy-Daten für Sie erstellen könnte?

Durch Ausführen von wp post generate –count=10 können Sie in Sekundenschnelle zehn Demo-Posts generieren. Die gleiche Funktionalität funktioniert zum Erstellen von Seiten, WooCommerce-Dummy-Daten und Sie können sogar Lorem-Ipsum-Inhalte zu den Beiträgen hinzufügen.

Einfach curl verwenden http://loripsum.net/api/4 | wp post generate –post_content –count=10 erstellt 10 Beiträge mit jeweils vier Absätzen Lorem Ipsum-Text.

Warum habe ich tmux empfohlen?

Ich hoffe, die oben aufgeführten Beispiele reichen aus, um Sie dafür zu begeistern, SSH zur Wartung Ihrer Cloudways-Server zu testen. Lassen Sie mich diesen Artikel noch etwas weiterführen und darüber sprechen, warum ich tmux verwende, um meine SSH-Sitzungen zu verwalten.

Kurz gesagt, mit tmux können Sie mehrere Terminalsitzungen gleichzeitig verwalten. Das heißt, wenn Sie etwas im Terminal tun, während Sie sich in einer tmux-Sitzung befinden, verfolgt tmux, was Sie tun. Auch wenn Sie das Terminal versehentlich schließen, geht Ihre Sitzung nicht verloren. Sie können einfach mit einem Befehl dorthin zurückkehren, wo Sie aufgehört haben, und weiterarbeiten.

Mit tmux können Sie auch Skriptsitzungen durchführen. Wenn Sie beispielsweise dazu neigen, immer wieder dieselben Befehle zum Einrichten von Entwicklungsumgebungen auszuführen, können Sie diese Befehle mit tmux automatisieren.

Ehrlich gesagt bin ich mir nicht sicher, ob ich jemals alles lernen werde, was tmux zu bieten hat – einfach weil es so viel ist. Es ähnelt Google Spreadsheets oder MS Excel – wir alle wissen, wie mächtig diese Tools sind, nutzen aber täglich möglicherweise 5% ihrer Funktionen. Ich weiß jedoch genug, um tmux in meiner täglichen WordPress-Entwicklung zu verwenden .

Wie Sie im Video sehen können, verwende ich tmux, um meine SSH-Sitzungen zu verfolgen. Das erspart mir, mich immer wieder bei meinen Cloudways-Servern anzumelden. Ich verbinde mich einfach wieder mit der tmux-Sitzung namens „Cloudways“ und arbeite weiter an meinen Servern. Keine Zauberei im Spiel, aber selbst diese kleine Optimierung spart mir jeden Tag Zeit. Das gleiche mache ich für meine privaten Raspberry Pi's zu Hause (in meiner Freizeit bin ich ein Smart Home Nerd).

tmux ist cool, weil es Ihnen ermöglicht, Zeit zu sparen, produktiver zu werden und Ihre Handbewegungen im Laufe des Tages zu reduzieren. Wenn Sie wie ich sind, bekommen Sie von langen Tagen am PC leicht Handgelenksschmerzen. Selbst mit einer ergonomischen Maus würde es für mich nicht weggehen. Was jedoch funktionierte, war die Reduzierung der Bewegungen, die ich mit meinen Händen machte.

Die rechte Hand ab und zu von Tastatur auf Maus zu wechseln, fühlte sich immer wie eine Unterbrechung des Flusses an. Ich musste mir überlegen, wo ich meine rechte Hand hinlegen sollte, das Handgelenk wurde leicht belastet und ich kam aus dem Schreibfluss. Mit tmux können Sie, sobald Sie den Dreh raus haben, fast mausfreie Produktivität erzielen.

Ich würde gerne tiefer in tmux eintauchen, aber das würde den Rahmen dieses Artikels sprengen. Stattdessen gebe ich Ihnen einige Artikel, die Ihnen den Einstieg in tmux erleichtern oder Ihre Fähigkeiten verbessern: Erste Schritte mit tmux von Linuxize, Vorteile der Verwendung von tmux von Keegan Lowenstein und Eine minimalistische Anleitung zur Verwendung von tmux von Peter Jang.