Geben Sie vor einem Befehl URL, Pfad und Umgebung aus, verwenden Sie einen expliziten Geltungsbereich und zuerst eine Vorschau oder eine nur lesende Variante. Erstellen Sie bei Schreibvorgängen ein geprüftes Backup und ein Protokoll, führen Sie große Änderungen in Batches aus und gestalten Sie sie wiederholbar. Führen Sie WP-CLI nicht unter einem unnötig privilegierten Systemkonto aus. Schützen Sie automatische Läufe mit einer Sperre, einem Timeout, einem Exit-Code ungleich null und einer Benachrichtigung bei fehlendem Ergebnis. Führen Sie Search-Replace mit einem Tool durch, das serialisierte Werte sicher erhält und zunächst einen Dry-Run unterstützt.
WP-CLI ermöglicht die Verwaltung von WordPress ohne Klicken in der Administration. Es kann Plugins auflisten, Cron ausführen, mit der Datenbank arbeiten, Inhalte ändern und eigene Befehle ausführen. Dieselbe Mächtigkeit bedeutet jedoch, dass ein ungenauer Filter oder ein Befehl in der falschen Umgebung Tausende Datensätze ändern kann, bevor jemand den Fehler bemerkt.
Ein sicherer Einsatz beruht auf der Überprüfung des Ziels, einer Vorschau, einem Backup, Idempotenz und der Protokollierung des Ergebnisses. Diese Anleitung beschränkt sich nicht auf eine Liste von Befehlen. Sie zeigt ein betriebliches Vorgehen für manuelle Eingriffe ebenso wie für Automatisierung, den Schutz von Zugangsdaten, die Arbeit mit mehreren Websites und den Entwurf eines eigenen Befehls, der sich ohne unvorhersehbare Auswirkungen wiederholen lässt.
Prüfen Sie Binary, Pfad und Zielumgebung
Ermitteln Sie Herkunft und Version von WP-CLI sowie des verwendeten PHP. Geben Sie vor jedem Eingriff den Pfad zur Installation, den Wert der Home-URL und gegebenenfalls den Multisite-Kontext aus. Ein Alias hilft, sein Name ist jedoch kein Beweis; eine Automatisierung sollte einen expliziten Pfad und eine Prüfung der erwarteten Domain oder Umgebungskennzeichnung haben.
Das Shell-Konto sollte nur die nötigen Berechtigungen für Dateien und Datenbank haben. Führen Sie WordPress-Befehle nicht ohne Grund als globaler Systemadministrator aus, da erstellte Dateien sonst falsche Eigentümerrechte erhalten können. Trennen Sie Zugangsdaten für Produktion und Staging und geben Sie Passwörter nicht direkt in die Befehlshistorie ein.
Beginnen Sie mit Lesen und erstellen Sie eine sichere Vorschau
Zählen Sie vor einer Massenänderung die Ziele und geben Sie eine repräsentative Stichprobe aus. Ein Filter nach Typ, Status und exaktem Meta-Key ist sicherer als eine unbegrenzte ID-Liste. Hat der Befehl keinen Dry-Run, erstellen Sie einen eigenen Modus, der dieselbe Auswahl und Validierung durchführt, aber nur das geplante Ergebnis anzeigt.
Speichern Sie Ausgaben in einem maschinenlesbaren Format, wenn ein Skript darauf aufbaut. Übernehmen Sie keine Texttabelle, deren Spalten sich mit der Version ändern können. Jeder automatische Schritt prüft sowohl den Rückgabecode als auch die erwartete Anzahl an Datensätzen; ein leeres Ergebnis ist nicht unbedingt ein Erfolg, wenn Sie tausend Einträge erwartet haben.
- Bestätigter Pfad und Domain
- Präziser Filter für die Zieldatensätze
- Dry-Run oder schreibgeschützte Vorschau
- Erwartete Anzahlen und Rückgabecodes
Schreibvorgänge bündeln und Rückkehr vorbereiten
Erstellen Sie vor einer irreversiblen Datenbankänderung ein Backup und prüfen Sie, ob es sich lesen lässt. Teilen Sie große Operationen mit einem Cursor in Batches auf, damit sie den Speicher nicht erschöpfen und nach einem Ausfall fortgesetzt werden können. Speichern Sie nach jedem Batch die Anzahl der Erfolge, der Ablehnungen und den letzten stabilen Identifikator.
Testen Sie Search-Replace mit einem Dry-Run und korrekter Serialisierung; ein einfaches Textersetzen in SQL kann gespeicherte Strukturen beschädigen. Verwenden Sie beim Löschen eine explizite Liste geprüfter IDs und eine Aufbewahrungsregel. Ein Rollback muss nicht nur die Wiederherstellung der gesamten Datenbank sein; bei einer gut konzipierten Migration lässt sich der ursprüngliche Wert erhalten und ein bestimmter Batch zurücksetzen.
Gestalten Sie eigene Befehle als öffentliche Schnittstelle
Der Befehl hat dokumentierte Argumente, Standardwerte, Beispiele und Fehlerzustände. Er validiert vor dem ersten Schreibvorgang und unterstützt einen Dry-Run. Ein erneuter Aufruf mit derselben Eingabe erzeugt dasselbe Ergebnis oder meldet sicher, dass die Arbeit bereits erledigt wurde. Interaktive Abfragen dürfen den automatisierten Modus nicht blockieren.
Halten Sie die Geschäftslogik in einem testbaren Service des Plugins, und lassen Sie die CLI lediglich als Adapter fungieren. Dieselbe Funktion kann dann sicher auch von einer Queue oder der Administration genutzt werden. Die laufende Ausgabe enthält keine Passwörter, Tokens oder vollständigen personenbezogenen Datensätze. Bei einem Teilfehler endet der Befehl mit einem Exit-Code ungleich null und nennt einen sicheren Weg zur Fortsetzung.
Sichern und überwachen Sie die Automatisierung
Schützen Sie einen geplanten Befehl mit einer Sperre mit sicherem Ablauf vor paralleler Ausführung. Legen Sie ein Timeout, ein Batch-Limit und ein separates Log mit Rotation fest. Eine Benachrichtigung erfolgt bei einem Fehlschlag, bei ungewöhnlich langer Laufzeit und bei einem ausgebliebenen Lauf. Eine Erfolgsmeldung enthält Zahlen, nicht nur das Wort „erledigt“.
Führen Sie nach einem Update von WordPress, PHP oder einem abhängigen Plugin in der Staging-Umgebung einen Integrationstest des Befehls aus. Das Runbook erklärt die manuelle Vorschau, das Wiederherstellen des Cursors und das Entfernen einer verwaisten Sperre. Jeder automatische Befehl hat einen Verantwortlichen und ein Prüfdatum; ein vergessener Cron mit veralteter Syntax ist ein Betriebsrisiko.
Häufige Fragen
Ist WP-CLI in der Produktion sicher einsetzbar?
Ja, wenn Sie das Ziel überprüfen und minimale Systemberechtigungen, einen genau festgelegten Umfang, eine Vorschau, ein Backup und Monitoring einsetzen. Ein Risiko entsteht vor allem bei einem uneingeschränkten Befehl, der sich nicht rückgängig machen lässt.
Wie führt man einen Dry-Run für einen Befehl durch, der ihn nicht unterstützt?
Führen Sie zuerst dieselbe Auswahl mit einem lesenden Befehl aus und speichern Sie die expliziten IDs. Bei einer eigenen Lösung fügen Sie einen Schalter hinzu, der validiert und den Plan ohne Schreibvorgang ausgibt. Kopieren Sie einen Produktionsbefehl nicht blind.
Kann WP-CLI den Aufgabenplaner ersetzen?
WP-CLI kann der Ausführungsmechanismus sein, der vom System-Scheduler gestartet wird, aber Sie benötigen weiterhin Zeitsteuerung, eine Sperre, ein Timeout, ein Log und eine Benachrichtigung bei einem ausbleibenden Lauf. Der Befehl allein ersetzt kein Monitoring.