Eine Historie Anzeige für Installationen auf der Kommandozeile erstellen

Die Protokollinformationen von APT werden in den Dateien /var/log/apt/history.log und /var/log/apt/term.log aufgezeichnet. Da diese beiden Dateien relativ viele Informationen liefern bzgl. der Paketinstallation auf der Kommandozeile habe ich mir Gedanken für eine Vereinfachung gemacht.

Als Ergebnis sollte dabei ein Einzeiler, der als Kommado-Alias in der Shell ausgeführt werden kann, heraus kommen. Die Informationen sollten auf das nötigste beschränkt sein und pro Bildschirmzeile eine Ausgabe erzeugen.

Mit Hilfe des sed Kommandos konnte ich solche Informationen aus der Logdatei /var/log/apt/history.log extrahieren. Ein erster Versuch ermittelt die Zeilen die mit “Com” beginnen und das jeweilige APT Kommando auflistet, alles andere wird ignoriert.

# sed '/^Com/!{h;d}' < /var/log/apt/history.log
Commandline: apt purge linux-headers-4.8.0-51 linux-image-4.8.0-51
Commandline: apt purge linux-headers-4.8.0-52 linux-image-4.8.0-52
Commandline: apt-get dist-upgrade
Commandline: apt-get install korganizer
Commandline: apt-get dist-upgrade

Sinnvoll wäre jedoch auch noch zusätzlich das Datum und Zeit des jeweiligen ausgeführten APT Kommandos.

# sed '/^Com/!{h;d};/^Com/{x;G;s/\n/  /}' < /var/log/apt/history.log
Start-Date: 2017-06-06  20:06:28  Commandline: apt purge linux-headers-4.8.0-51 linux-image-4.8.0-51
Start-Date: 2017-06-06  20:07:18  Commandline: apt purge linux-headers-4.8.0-52 linux-image-4.8.0-52
Start-Date: 2017-06-09  09:21:38  Commandline: apt-get dist-upgrade
Start-Date: 2017-06-09  10:42:36  Commandline: apt-get install korganizer

Das ganze packt man nun in die .bashrc des jeweiligen Users als Kommadoalias. Als Aliasbezeichner habe ich den sprechenden Namen “apthist” verwendet.

# alias apthist='sed '\''/^Com/!{h;d};/^Com/{x;G;s/\n/  /}'\'' < /var/log/apt/history.log'

Immer wenn jetzt das Alias apthist auf der Kommandozeile eintippt erhält man alle Zeilen aus der Logdatei /var/log/apt/history.log im kompakten Kurzformat.

# apthist
Start-Date: 2017-06-06  20:06:28  Commandline: apt purge linux-headers-4.8.0-51 linux-image-4.8.0-51
Start-Date: 2017-06-06  20:07:18  Commandline: apt purge linux-headers-4.8.0-52 linux-image-4.8.0-52
Start-Date: 2017-06-09  09:21:38  Commandline: apt-get dist-upgrade
Start-Date: 2017-06-09  10:42:36  Commandline: apt-get install korganizer
Start-Date: 2017-06-13  11:43:45  Commandline: apt-get dist-upgrade