Kategorien
scripting & coding

Log Files & systemd-journald

Wieder einmal etwas aus der Kategorie „brauch ich ganz selten“: Log Files werden, seit systemd bei vielen Linux-Distributionen Einzug gehalten hat, durch das Service systemd-journald zentral verwaltet. Mit der Zeit werden gewinnen die Log Files an Größe, das lässt sich aber ganz einfach managen.

Die Log Files werden je nach Konfiguration persistent unter /var/log/journal/MACHINE-ID/ oder in-memory unter /run/log/journal/MACHINE-ID/ abgelegt. Im zweiten Fall löst der Reboot die Speicherfrage, im ersten darf/muss man selbst Hand anlegen.

Folgende Befehle helfen weiter:

journalctl --disk-usage
journalctl --rotate
journalctl --vacuum-time=4months
journalctl --vacuum-size=256M
  • --disk-usage gibt Auskunft über den verbrauchten Speicherplatz der aktiven und archivierten Log Files.
  • --rotate wandelt aktive Log Files in archivierte um.
  • --vacuum-time=4months entfernt alle Log-Einträge, die älter als vier Monate sind. Das geht auch Wochen (4weeks), Stunden (4h), Minuten (4m) und Sekunden (4s)…
  • --vacuum-size=256M entfernt alle älteren Log-Einträge, bis die Log Files 256Mb haben (K, M, G, T sind die möglichen Größeneinheiten).
  • --vacuum-time und --vacuum-size können auch gemeinsam in einem Aufruf verwendet werden, auch in Kombination mit --rotate (seit systemd 240): journalctl --rotate --vacuum-time=4months --vacuum-size=256M
Kategorien
scripting & coding

Cheatsheet für git

Ich programmiere zur Zeit eher selten und VCS nutze ich noch seltener. Lange Zeit war SVN meine erste Wahl, heute ist es git. Aber seltene Nutzung bedeutet auch rasches Vergessen, deshalb hier mein persönliches Cheatsheet für git:

BefehlErklärung
git initEin leeres Git-Repository erstellen oder ein bestehendes neuinitialisieren
git clone „https://server.com/sourcerepository“Ein Repository in einem neuen Verzeichnis klonen
git config –global user.email „useremail“Festlegung der E-Mail-Adresse (ohne „–global“ erfolgt das nur für dieses Repository)
git config –global user.name „username“Festlegung des Usernamens (ohne „–global“ erfolgt das nur für dieses Repository)
git add „filename“Dateiinhalte zum Commit vormerken
git commitÄnderungen in das Repository eintragen
git pushRemote-Referenzen mitsamt den verbundenen Objekten aktualisieren
git pullObjekte von einem externen Repository anfordern und sie mit einem anderen Repository oder einem lokalen Branch zusammenführen
git diffÄnderungen zwischen Commits, etc. anzeigen
git logCommit-Historie anzeigen
Auszug über git Befehle

Wenn es dann doch um mehr geht

git help git

#Last update: 2020-06-05

Kategorien
scripting & coding

Video verkehrt als Einzeiler mit ffmpeg

Ich bekam heute ein kurzes Video geschickt, wo ein lädierter Baum Stück für Stück gekürzt wurde. An sich nichts Ungewöhnliches, aber in mir reifte nach kurzer Zeit der Wunsch den Baum zumindest digital wieder zusammenzusetzen und somit das Video umzukehren.

Das Original: Es war einmal ein Baum

Der einfachste Weg war ffmpeg auf meinem Rechner zu installieren, ein sudo apt install ffmpeg im Terminal und keine 60 Sekunden später konnte ich die folgende Zeile eingeben:

ffmpeg -i Treecut.mp4 -vf reverse Treecut_reversed.mp4

Da das tonlose Original lediglich um die 10 Sekunden lang ist und das Ausgangsmaterial keine besondere Qualität besitzt, lässt der Aufruf jegliche Optimierungen vermissen, denn da kann ffmpeg in Punkto Video- und Audiostreams so einiges.

Alles rückwärts: Stück für Stück zum Baum

Der Baum steht wieder. 😉


Anmerkung: ffmpeg gibt es für viele Plattformen, also auch für Windows und MacOS als Download erhältlich.

Kategorien
scripting & coding

Excel VBA Makro Gedankenstützen

Ich habe immer wieder die Aufgabe Tätigkeiten in Excel zu automatisieren, aber eben nur alle ewigen Zeiten. Manche Makros benötige ich öfters, wobei zwischen zwei Malen auch wieder einige Zeit vergeht.

Generell ist jeder Code-Schnipsel vor seiner Nutzung auf den jeweiligen Anwendungsfall anzupassen, z.B. columns, range, etc.

Diesen Blog-Eintrag werde ich von Zeit zu Zeit mit weiteren Code-Schnipseln ergänzen.

Last update: 2019-12-22

Verbundene Zellen auflösen

Sub VerbundeneZellenAufloesen()
Dim c As Range
For Each c In Intersect(Columns("A:B"), ActiveSheet.UsedRange)
    If c.MergeCells Then
       With c.MergeArea
          .UnMerge
          .Value = c.Value
       End With
    End If
 Next c
 End Sub

Checkboxen in Zellen hinzufügen

Sub AddCheckbox()
     Dim i
     For i = 18 To 200 'cells from 18 to 200
     ActiveSheet.CheckBoxes.Add(Cells(i, "I").Left, Cells(i, "I").Top, 72, 17.25).Select
     With Selection
         .Caption = ""
         .Value = xlOff '
         .LinkedCell = "J" & i
         .Display3DShading = False
     End With
     Next
 End Sub