it-swarm.com.de

Wie protokolliere ich alle Ein- und Ausgaben in einer Terminalsitzung?

Wie kann ich alle über das Terminal geleisteten Arbeiten protokollieren? Zum Beispiel möchte ich eine Aufzeichnung aller auf der Datenbank durchgeführten Arbeiten über das Terminal.

44
Ankit

Wenn Sie bereit sind, eine Protokolldatei aufzuzeichnen, geben Sie Folgendes ein:

script screen.log

Bis Sie das Skript anhalten, werden alle Eingaben und Ausgaben im Terminal in screen.log gespeichert. Wenn Sie fertig sind, geben Sie einfach Folgendes ein:

exit

Ihre screen.log-Datei wird im lokalen Verzeichnis gespeichert. Wenn Sie es umleiten möchten, verwenden Sie einen absoluten Pfadnamen wie ~/screen.log. Dies wird genau das tun, wonach Sie suchen.

Quelle: buntu-Handbuch - Protokollieren von Terminalbefehlen

64
xlukasx

Vielleicht möchten Sie Asciinema ausprobieren. Sie können nicht nur eine Aufnahme erstellen, sondern diese auch freigeben und den Player in Ihr Blog, Ihren Artikel oder in ein Konferenzgespräch einbetten.

10
sickill

Ich habe eine bessere Möglichkeit, Syslog zum Protokollieren jedes Shell-Befehls zu verwenden. Dies kann je nach Linux-Distribution variieren, aber die Methode bleibt dieselbe

Sie müssen einige Schritte befolgen:

Schritt 1 (Syslog-Dienst erstellen)

# vim /etc/rsyslog.d/bash.conf

local6.*    /var/log/commands.log

Schritt # 2 (Öffne bashrc und gib den folgenden Befehl ein)

# vim /root/.bashrc

# Enable CLI Logging by Mansur 08-12-2016 
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"export Prompt_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

Schritt 3 (Syslog-Dienst neu starten)

# /etc/init.d/rsyslog

Hier ist ein Protokollbeispiel:

 7. Dezember 22:13:00 validationdb2 mahasan: root @ export [13291]: tail -f /var/log/mysql/mysql.log [0] 
 7. Dezember 22:13:09 validationdb2 mahasan: root @ export [13291]: ls -lh [0] 
 7. Dezember 22:13:27 validationdb2 mahasan: root @ export [13291]: touch test command [0] 
6
Mansur Ali