Schlagwort-Archive: Zeit

Bash: History mit Zeitpunkten und unbegrenzter Größe & .bashrc vs. .bash_profile

Auch wenn es einige Alternativen zur gewöhnlichen Bash unter Linux gibt, zählt sie auch heute noch zu den beliebtesten Shells. Auch ich selbst nutze sie auf meinem Server noch rege. Die Z shell (zsh) sieht zwar ebenso vielversprechend aus, aber das ist ein Thema für ein anderes mal.

Unbegrenzte History
Kommen wir zurück zur Bash: etwas, dass ich lange vermisst habe, war die Größe der History so festzulegen, dass diese nicht begrenzt ist. Oftmals gibt es dann doch den einen Befehl, der nützlicherweise noch in der History schlummern könnte, wenn er nicht schon dem Größenlimit zum Opfer gefallen wäre. Festlegen lässt sich die Historygröße grundsätzlich über die beiden Variablen HISTSIZE sowie HISTFILESIZE. HISTSIZE legt dabei die maximale Anzahl von Befehlen bzw. Zeilen fest, die in der History im Hauptspeicher während einer Sitzung festgehalten bleiben. HISTFILESIZE legt dagegen die maximale Anzahl von Befehlen bzw. Zeilen in der Historydatei fest, die gespeichert bzw. beim Start der Bash geladen werden. Wichtig ist also, beide Werte entsprechend anzupassen. Bis zur Bash Version 4.3 gab es AFAIK keine Möglichkeit, beide Werte auf „unlimitiert“ zu setzen, sodass lediglich ein möglichst hoher Wert eine Alternative darstellte. Seit Version 4.3 führt ein Wert kleiner 0 zu einer unbegrenzten Größenfestlegung. Dazu sind folgende beiden Einträge in die Bashkonfiguration aufzunehmen:

HISTFILESIZE=-1
HISTSIZE=-1

History mit Zeitangaben
Doch auch wenn nun verwendete Befehle weit in der Vergangenheit nachgeschlagen werden können, bleibt manchmal die Frage offen, zu welchem Zeitpunkt ein Befehl ausgeführt wurde. Über HISTTIMEFORMAT lässt sich das Historyformat entsprechend anpassen, sodass die History künftig um eine Zeitangabe erweitert wird.  Ein mögliches Format kann beispielsweise so aussehen:

HISTTIMEFORMAT=“[%d.%m.%y] %T „

Dies resultiert in Historyeinträgen im folgenden Schema:
536 [12.02.18] 00:13:56 ls -lha

.bashrc vs .bash_profile
Bleibt noch die Frage offen, in welche der beiden Dateien die neuen Kofigurationszeilen aufzunehmen sind. Grundsätzlich lassen sich die Einträge in beide Dateien eintragen, sie werden allerdings zu unterschiedlichen Zeitpunkten Verwendung finden. Die .bashrc wird bei jedem Öffnen eines interaktiven Terminals automatisch geladen, während die .bash_profile beim Öffnen einer Login-Shell geladen wird. Um auf der sicheren Seite zu sein, müssten die Einträge also in beiden Dateien vorgenommen werden. Bei einem Server, der ohnehin grundsätzlich über SSH angesteuert wird, lässt sich die .bashrc aber auch automatisch mit der .bash_profile ausführen. Dazu ist lediglich folgendes kleine Snippet in die .bash_profile einzutragen:

if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

 

 

Zeitkugel, dreh dich!

Manchmal würde man am Liebsten die Zeit zurück drehen, große Fehler vergessen machen und die Vernunft in die Vergangenheit impfen, die Geschehnisse erst gar nicht zustande kommen lassen würden. Sich selbst zu enttäuschen ist das eine, aber mit der Enttäuschung einer anderen Person leben zu müssen ist noch viel schwerer. Niederlagen machen einen stark, heißt es. Aber das Gefühl spricht in diesem Moment eine ganz andere Sprache. Liegt die Hoffnung in der Zeit, der scheinbaren Löserin aller Probleme?

Den Kampf angesagt

Du hast mich lange Zeit begleitet. Versucht, mich vor Situationen zu bewahren. Mich zu schützen. Doch das Gegenteil war der Fall. Doch das hat nun ein Ende. Nun geht’s dir an den Kragen. Du hast dich lange genug aufrecht erhalten. Schritt für Schritt und die Augen auf das Ziel gerichtet werde ich diese Last ablegen. Unverständlichkeit steht in den Augen mancher Menschen verschrieben, die einiges nicht verstanden haben. Lass es wahr werden. Der Kampf ist angesagt.

Zusatzdienst zugunsten der Pünktlichkeit

Nachdem die Serveruhr in der Vergangenheit partout auch nach mehrmaligem Stellen immer wieder der aktuellen Uhrzeit um mehrere Minuten abwich, musste Abhilfe her. Dank eines Eintrags zu diesem Thema im Wiki von Hetzner war der passende Dienst schnell gefunden: NTP. Nach kurzem Hinzufügen der nötigen Pakete und ein bisschen Recherche, um die Konfiguration vorzunehmen, läuft der NTP Server nun automatisch im Hintergrund und hält die Serverzeit genau. Damit wäre der ständigen Unpünktlichkeit ein für allemal der Garaus gemacht.

Pünktlichkeit garantiert
Pünktlichkeit garantiert

Wenn Themen verschwinden

Ein gestern im eigenen Forum geschriebener Beitrag schien heute plötzlich verschwunden. Doch was war passiert? Googlen half hier nicht, doch irgendwie musste es an der Forensoftware hängen, schließlich fangen Themen nicht von alleine an zu verschwinden 😉
Nach einigem hin und her kam dann der Gedanke, dass es möglicherweise an der Themenzeit hängt. Kurz in der Datenbank nachgeschaut, den Timestamp zurückgerechnet und da war er, der Fehler: Es war ein Datum anno 2002 eingetragen. Irgendwie merkwürdig, das passiert sonst nicht einfach so? Jedenfalls half vorerst die manuelle Anpassung des Timestamps, um den Thread wieder auf die erste Seite zu verfrachten. Beim nächsten Schritt fiel dann die wirkliche Ursache auf: auch die Uhrzeit im Forum zeigte das Jahr 2002 an, ein Aprilscherz? Nicht wirklich, gestern hatte ich die Uhrzeit des Servers angepasst und dabei aus Versehen das Jahr 2002 angegeben. So lief die Zeit zumindest fast einen Tag in der Vergangenheit. Beim nächsten Mal werde ich sicherlich besser darauf achten 😉