Erfassen Sie das Betriebsprotokoll automatisch im Terminal, wenn Sie sich bei Linux anmelden

Dies ist der erste Beitrag seit langer Zeit. Vor kurzem habe ich mit Ubuntu Mate gespielt, das auf gpd-micropc installiert ist.

Hintergrund

Ich suchte nach einer Möglichkeit, das Betriebsprotokoll automatisch im Terminal abzurufen. Zuerst dachte ich, ich sollte einen Skriptbefehl in .bashrc schreiben, aber es scheint nicht zu funktionieren. .. Ich habe verschiedene Artikel gefunden, nach denen ich gesucht habe und die hilfreich waren. How do I log all input and output in a terminal session?

Umgebung

Ubuntu-Mate auf GPD Micropc installiert

OS: Ubuntu 19.10 eoan                                                                                                   
Kernel: x86_64 Linux 5.3.0-40-generic
Shell: bash
DE: MATE 1.22.2
CPU: Intel Celeron N4100 @ 4x 2.4GHz
GPU: Mesa DRI Intel(R) UHD Graphics 600 (Geminilake 2x6)-

Was ich getan habe

1. Erstellen Sie eine rsyslog-Konfigurationsdatei

Da das Protokoll mit dem Befehl logger ausgegeben wird, erstellen Sie unten eine Einstellungsdatei

vim /etc/rsyslog.d/bash.conf

/etc/rsyslog.d/bash.conf


local6.*    /var/log/commands.log

2. Fügen Sie .bashrc hinzu

Fügen Sie Folgendes zu .bashrc im Home-Verzeichnis des Benutzers hinzu, dessen Betriebsprotokoll erfasst werden soll.

vim /home/hoge(Zielbenutzer)/.bashrc

/home/hoge(Zielbenutzer)/.bashrc


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]"'

3. Starten Sie den rsyslog-Dienst neu

Starten Sie den rsyslog-Dienst neu

systemctl restart rsyslog.service 

4. Erstellen Sie eine Einstellungsdatei für die Protokollrotation

Erstellen Sie eine Konfigurationsdatei, die täglich mit "logrotate.d" gedreht wird

vim /etc/logrotate.d/commands

/etc/logrotate.d/commands


/var/log/commands.log*
{
»-rotate 7
»-daily
»-dateext
»-missingok
»-notifempty
»-compress
»-postrotate
»-»-/usr/lib/rsyslog/rsyslog-rotate
»-endscript
»-su root root                                                                                                          
}

Bestätigung

Lesen Sie .bashrc

source .bashrc 

Stellen Sie sicher, dass die Datei wie unten gezeigt unter "/ var / log" erstellt wurde

ls -la /var/log/commands.log*
-rw-r-----1 syslog adm 4753 15. März 19:34 /var/log/commands.log

/var/log/commands.log


Mar 15 19:34:29 hoge hoge: hoge@export [3457]: 2020-03-15 19:34:29 cd [0]
Mar 15 19:34:39 hoge hoge: hoge@export [3457]: 2020-03-15 19:34:37 source .bashrc  [0]
Mar 15 19:36:56 hoge hoge: hoge@export [3457]: 2020-03-15 19:36:56 ls -la /var/log/commands.log* [0]

Impressionen

Ich frage mich, ob ich logrotieren kann. .. Danach möchte ich die Ausgabe wie den Skriptbefehl. ..

Recommended Posts

Erfassen Sie das Betriebsprotokoll automatisch im Terminal, wenn Sie sich bei Linux anmelden
So melden Sie sich automatisch wie 1Password von der CLI an
Ändern Sie die Meldung, die beim Anmelden bei Raspberry Pi angezeigt wird
[Linux] Ich möchte das Datum wissen, an dem sich der Benutzer angemeldet hat
Melden Sie sich mit SSH bei einem Remote-Server an
Twitter-Streaming-Client zum Genießen im Terminal
Loggen Sie sich mit json mit pygogo ein.
Was passiert mit dem Zugriffsprotokoll, wenn der Selenium-Webdriver automatisch auf die Website zugreift?
So erlauben Sie Nologin-Benutzern, sich unter Linux anzumelden
Beenden bei Verwendung von Python in Terminal (Mac)
Praktische Linux-Tastaturbedienung, die ich mir selbst beibringen möchte, als ich in der Schule war
So löschen Sie "(base)", das im Terminal angezeigt wird, wenn Anaconda auf einem Mac installiert ist
Melden Sie sich von Selenium aus beim Fortigate (6.0) -Verwaltungsbildschirm an, um sich abzumelden
So aktualisieren Sie Benutzerinformationen bei der Django RemoteUserMiddleware-Anmeldung
[Django] Ich möchte mich nach einer neuen Registrierung automatisch anmelden
Ich kann mich mit Django 3 nicht auf der Admin-Seite anmelden
So melden Sie sich mit Python bei AtCoder an und senden automatisch
Die minimale Methode, die beim Aggregieren von Daten mit Pandas zu beachten ist
Eine Geschichte, die nicht funktioniert hat, als ich versucht habe, mich mit dem Python-Anforderungsmodul anzumelden
Drücken Sie den Echo-Befehl im Mac-Terminal, um Hello World auszugeben
Maßnahmen, die zu ergreifen sind, wenn in HttpResponse Redirect ein verdächtiger Vorgang auftritt
LINEbot-Entwicklung möchte ich den Betrieb in der lokalen Umgebung überprüfen
Einstellungen, die beim Starten des Linux-Servers centos7 vorgenommen werden müssen
Versuchen Sie, sich mit Python auf Ihrem PC automatisch bei Netflix anzumelden
Auf Wiedersehen zur Eingabeaufforderung in WSL, VSCode und Windows Terminal
Ich habe den Befehl gegeben, einen farbenfrohen Kalender im Terminal anzuzeigen
Ich habe versucht, mich automatisch mit Selen bei Twitter anzumelden (RPA, Scraping)
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Automatisch in py-Datei konvertieren, wenn die UI-Datei von PySide aktualisiert wird
Holen Sie sich die der Netzwerkschnittstelle zugewiesene IPv4-Adresse in Code (Linux)
Ich habe versucht, ein System zu erstellen, um den Programmführer automatisch zu erfassen → ihn an einem Tag im Kalender zu registrieren
Programmierung, um in der Welt zu kämpfen ~ 5-5,5-6
Programmieren, um in der Welt zu kämpfen 5-3
Programmierung für den Kampf in der Welt - Kapitel 4
Im Python-Befehl zeigt Python auf Python3.8
Befehl [linux] kill, um den Prozess abzubrechen
Probieren Sie Cython in kürzester Zeit aus
Wenn der Knoten in rqt_graph verschwindet
So melden Sie sich bei Docker + NGINX an
Programmieren, um in der Welt zu kämpfen ~ 5-2
Betreiben Sie Paints Chainer mit Selen, um Bilder im Verzeichnis automatisch einzufärben
Was tun, wenn das über Scrapy heruntergeladene Ergebnis auf Englisch ist?
So blenden Sie die Eingabeaufforderung aus, wenn Sie Python in Visual Studio 2015 ausführen
[Linux] Ein Befehl zum Abrufen einer Liste der in der Vergangenheit ausgeführten Befehle
Verwenden Sie eine Verknüpfung, um das Touchpad in Linux Mint zu aktivieren oder zu deaktivieren
Einstellungen zum automatischen Öffnen und Schließen des QuickFix-Fensters bei Verwendung von errormaker.vim
Was tun, wenn in der Anaconda-Umgebung die Warnung "Die Umgebung ist konsistent ..." angezeigt wird
python So benachrichtigen Sie automatisch per Telefon, wenn das System ausfällt
Es ist praktisch, stac_info und exc_info zu verwenden, wenn Sie Traceback in der Protokollausgabe durch Protokollierung anzeigen möchten.