Dies ist der erste Beitrag seit langer Zeit. Vor kurzem habe ich mit Ubuntu Mate gespielt, das auf gpd-micropc installiert ist.
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?
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)-
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
.bashrc
hinzuFü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]"'
Starten Sie den rsyslog-Dienst neu
systemctl restart rsyslog.service
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
}
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]
Ich frage mich, ob ich logrotieren kann. .. Danach möchte ich die Ausgabe wie den Skriptbefehl. ..