Wie kann ich Linux-Befehle aufzeichnen?

9

Gibt es eine Möglichkeit, die von mir verwendeten Linux-Befehle aufzuzeichnen und auf einem anderen Computer wiederzuverwenden, oder falls ich den Computer neu installieren möchte?

Zeichnen Sie im Beispiel auf, wie ich NginX, PHP und Berechtigungen in meiner Laborumgebung einrichte, und wiederholen Sie dann die genauen Befehle auf meinem Bereitstellungscomputer.

Jonas
quelle

Antworten:

19

Mir scheint, Sie wollen ein Skript (1) .

Sie können Terminalsitzungen aufzeichnen und wiedergeben.

Wenn Sie jedoch versuchen, Setups zu automatisieren, sollten Sie das Konfigurationsmanagement wie Puppet in Betracht ziehen .

ptman
quelle
Danke für Puppet, es sieht gut aus. Ich werde mehr darüber lesen.
Jonas
1
+1 für Marionette. Dies ist ein viel besserer Weg, als nur Shell-Befehle aufzuzeichnen.
EEAA
+1. Cfengine ist ein Konkurrent von Puppet, auch
GWaldo
2

Zwei Möglichkeiten, die ich mir auf den ersten Blick vorstellen kann:

  • Verwenden Sie den eingebauten Befehl Geschichte

  • Führen Sie alles in einer Bildschirmsitzung aus und aktivieren Sie die Protokollierung

Eddy
quelle
2

Bash zeichnet Befehle in einer Datei mit dem Namen ~ / .bash_history auf. Dies funktioniert, wenn Sie alles über eine Befehlszeile und in einem Befehlsfenster erledigen.

Seien Sie jedoch gewarnt, es begrenzt die Größe dieser Datei auf die neuesten 1000 (standardmäßig) Befehle.

Kevin M.
quelle
0

Probieren Sie es aus

script / tmp / it356658 - $ (uname -n) .out

# Datum

Rajat
quelle
Er leitet scriptdie Ausgabe an eine bestimmte Datei weiter. Die Benennung ist ungewöhnlich, wird aber wahrscheinlich aus einem größeren Shell-Skript extrahiert.
mctylr
1
Das $(uname -n)wird von der Befehlszeile interpretiert, um den unameBefehl mit dem -nFlag zum Ausdrucken des Hostnamens des Systems auszuführen.
mctylr
0

Ich denke, Sie könnten auch Autoexpect für diese Aufgabe verwenden.

Anonym
quelle
Ich habe "Befehl nicht gefunden" in Ubuntu, als ich es versuchte.
Jonas
1
Ich denke, es wäre Teil des Expect-Pakets, das möglicherweise nicht standardmäßig installiert ist. Ref: linuxjournal.com/article/3065
mctylr
0

Normalerweise verwende ich einen Befehl history > ~/tmp/hhzum Speichern einer Verlaufsdatei. Dann vispringe ich mit dem Befehl G nach unten und suche dann nach oben, bis ich den Teil finde, der sich in der Nähe eines nützlichen Einstiegspunkts in ein Skript befindet. Von dort aus reduziere ich überflüssige lsBefehle, kombiniere eine Reihe von inkrementellen Befehlen cdzu Verzeichnissen, füge Kommentare hinzu und beginne herauszufinden, welche Teile Argumente sein müssen, welche Dinge möglicherweise Umgebungseinstellungen sein müssen und welche Dinge fest codiert werden müssen. Ich füge viele Kommentare hinzu. Manchmal "stochere" ich in Teilen der Automatisierung sshherum und gebe dem Benutzer nur einige Anweisungen (gehen Sie zu dieser Einstellung, um zu foo und ..., kommentieren Sie bla aus dieser Datei aus und verschieben Sie sie in blarg) oder echoeine URL ... und eine Eingabeaufforderung Zeichenfolge wie: 'Foo konfiguriert und beenden>'

(Wenn Sie eine automatisierte Dateibearbeitung durchführen ... Ich empfehle, den Anweisungscode als Kommentar an die Datei anzuhängen und den Cursor des Editors mit dem Befehlszeilenschalter vi + oben in der Datei oben zu platzieren Beispiel: Mit 5 Zeilen Anweisungstext ( z. B. ein Dokument hier ) würden Sie '+$-5'der viBefehlszeile vor dem Dateinamen hinzufügen ( $-5ist eine alte exBeschwörung, um die letzte Zeile der Datei zu adressieren, minus fünf Zeilen; Der relativ undurchsichtige +Schalter viakzeptiert jeden ex... : Befehl ... als Argument.

Ein weiterer Trick , ... vorausgesetzt , Sie die meisten Ihrer Arbeit von einem X Windowing System - Terminal tun ( xterm, konsole, gnome-terminal, usw.) dann einen Browser offen halten auf einigen Wiki - Seiten , wie Sie gehen. Ausschneiden und Einfügen von Befehlen, Ausgabe, Ausschnitten von Textdateien und Notieren von Notizen. (Dies setzt meistens voraus, dass Sie hauptsächlich sshvon Ihrer Workstation, Ihrem Desktop, Laptop oder was auch immer an Ihren Servern arbeiten ).

Früh und oft sparen.

Erstellen Sie neue Wiki-Seiten für verschiedene Prozesse oder Phasen. Verknüpfen Sie sie dann miteinander und verknüpfen Sie sie mit Referenzen im Internet. (Sie wissen, all diese Google-Seiten, die Sie jedes Mal verwendet haben, wenn Sie irgendwann hängen geblieben sind).

Einige meiner besten HOWTO-Dokumente wurden auf diese Weise erstellt.

Wenn Sie es richtig machen, können Sie den Job möglicherweise auf altmodische Weise von Ihrem Teller bekommen, indem Sie ihn an das Junior-Teammitglied oder den eifrigen Praktikanten delegieren. :) :)

Jim Dennis
quelle