Kategorie: Linux

journalctl – Howto Memo

Memo Sammlung für die sinnvolle Verwendung von journalctl:

 

  • journalctl -b [-X]

    nur Logs aus aktuellem boot (oder älterem, -1 = vorletzter boot, etc)

  • journalctl --since yesterday|2024-01-10 --until XX

    Filtern nach Datum/Zeit

  • journalctl -u unit.service

    nach unit filtern

  • journalctl -p err -b

    nur err msg anzeigen (emerg/alert/crit/err/warning/notice/info/debug)

Wechsel von konventioneller Festplatte zu SSD

Beim Wechseln ohne Neuinstallation beachten:

  • Bios: AHCI aktivieren ("on Chip SATA Type"/"Enhanced/AHCI/etc). Schlecht: "Legacy"/"Disabled"/etc
  • ~Partitions Alignment checken: /sbin/blockdev –getalignoff /dev/sdX. Wenn != 0, dann z.B. mit gparted korrigieren~ nicht mehr notwendig idR
  • trim timer aktivieren (ggf. täglich)
    • bei dm-crypt: discard muss in die mountoptionen, aber Vorsicht: kann Sicherheitsprobleme verursachen
  • ssd firmware aktuell halten

Credits:

Sammlung nützlicher Shell Kommandos

Als Gedächtnisstütze sammle ich in diesem Post nützliche Kommandos für die Linux-Shell, die teilweise selten gebraucht werden aber dann jedesmal wieder gesucht werden müssen.

 

Fotos/Videos

  • exiv2 -T rename image.jpg

    Passt den Zeitstempel der Datei image.jpg der exif-Zeit an.

  • ffmpeg -i input.mp4 -acodec copy output.xyz

    Audio extrahieren aus Videodatei/etc

  • mkvpropedit "foo.mkv" -e info -s title="Title"

    Tags setzen bei .mkv Dateien

Dokumente

  • convert <input> -colorspace Gray <output>
  • convert <input> -type Grayscale <output>
  • convert <input> -threshold xx% <output>Bild/pdf zu grau/schwarzweiß konvertieren mit imagemagick
  • optimize2bw [-n] -i input.xyz -o output.xyz
    Dito, mit ExactImage (bestes Ergebnis bei kleinster Dateigröße, v.a. im Vergleich zu Imagemagick. Update 2024: Wird leider nicht mehr entwickelt, inzwischen auch nur noch mit alten Bibliotheken compilierbar, daher obsolet)
  • libreoffice --headless --convert-to pdf XX.pptx/docx/xlsx/etc
    Konvertierung von Office Dokument zu PDF (geht auch mit wildcard)

System

  • tree -pshuD .

    tree-Standardaufruf mit Dateiberechtigungen, Owner, Größe.

  • find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate

    Findet inhaltlich redundante Dateien über md5 Hash Berechnung und zeigt sie an

  • find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d |  xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate | cut -f3-100 -d ' ' | tr '\n.' '\t.' | sed 's/\t\t/\n/g' | cut -f2-100 | tr '\t' '\n' | perl -i -pe 's/([ (){}-])/\\$1/g' | perl -i -pe 's/'\''/\\'\''/g' | xargs -pr rm -v

    Dito wie davor, aber löscht die doppelten (mit Abfrage) (Quelle). Alternative für beides:

    fdupes -rd . (-N für automatisches Löschen)
  • xrandr -s XxY

    Schnell Display-Auflösung ändern

  • sudo dmidecode | less

    U.a. Bios Version herausfinden, muss man nach „Version“ suchen, geht mit grep leier nicht

Spezifisch für Arch Linux

  • yay -Suy --devel

Update aller Pakete inkl. VCS (git, svn, etc)

Netzwerk

  • nmap -sV -sS -O -Pn -v HOST

    Ausführlicher Portscan

System

  • stress-ng --cpu 4 --io 3 --vm 2 --vm-bytes 4G --hdd 1

    Stress Test. Parameter: –cpu [Anzahl Kerne] –io [Anzahl io worker] –hdd [Anzahl hdd test worker] –vm [Anzahl memory test worker] –vm-bytes [Größe Ram]

 

Änderungen HBCI bei der GLS Bank

Es gibt Änderungen an den Serveradressen der HBCI Infrastruktur für Onlinebanking mit entsprechenden Programmen der VR Banken (wozu die GLS Bank gehört).

Für Nutzung mit der Signaturdatei (Quelle):

u.a. für die GLS Bank: hbci.gad.de -> fints1.atruvia.de
hbci01.fiducia.de -> fints2.atruvia.de

Bei Gnucash bzw aqbanking an der üblichen Stelle zu ändern (Tools -> Online Banking Setup).

Server Update Debian 10 auf 12

Es stand endlich mal das Update von Debian 10 an, selbst der LTS Support ist ja absehbar zuende (Juni). Dann aber auch direkt hintereinander auf 11 und dann auf 12, damit dann wieder für einige Jahre Ruhe ist.

Das Update lief wie (fast) erwartet problemlos. Dann Aktualisierung des Server Panels. Danach finden sich ja dann immer kleinere bis größere Probleme und die Feinarbeit beginnt. Kurze Sammlung:

  • fail2ban startet nicht wegen fehlerhafter Konfiguration: Bugreport inkl. Lösung
    fail2ban [3016]: ERROR Failed during configuration: Bad value substitution: option 'ignorecommand' in section 'apache-fakegooglebot' contains an interpolation key 'ignorecommands_dir' which is not a valid option name. Raw value: '%(ignorecommands_dir)s/apache-fakegooglebot '
  • sshd fehlermeldung bei jeder Anmeldung: Bugreport und Lösung
    sshd: pam_env(sshd:session): deprecated reading of user environment enabled
  • chkrootkit: Neuer Ort für Config wird gewünscht. Die Log Meldung sagt ja schon was man tun soll:
    chkrootkit-daily[862579]: WARNING: /etc/chkrootkit.conf is deprecated. Please put your settings in /etc/chkrootkit/chkrootkit.conf instead: /etc/chkrootkit.conf will be ignored in a future release and should be deleted.

Hält sich ansonsten sehr in Grenzen, sehr erfreulich. Wird ergänzt wenn sich etwas Neues ergibt.

Spamfilterung mit rspamd

Auf dem Server laufen auch einige Mailboxen, den Spamfilter habe ich vor einiger Zeit von Spamassassin mit Avamis auf Rspamd umgestellt. In die Konfiguration muss man sich zwar kurz einarbeiten, aber dann fällt sie recht leicht und lässt sich schnell und einfach erweitern. Hier halte ich kurz fest, was ich geändert habe an der Basiskonfiguration, in loser Reihenfolge.

  • Mehrere dnsbls hinzugefügt. Dafür die Filterung direkt durch Postfix abgeschaltet (ispconfig: System -> Server Config -> Mail). Aktuell habe ich in /etc/rspamd/override.d/rbl.conf:
    • spamhaus (mit Registrierung der Free-Version von DQS)
    • Abusix (gleichfalls)
    • NiXSpam (nixspam.net)
    • uceprotect 2 und 3 (uceprotect.net)
    • SORBS (sorbs.net)
    • anonmails (anonmails.de)
    • truncate (gbudb.net)
    • 0spam.org
    • Spamcop.net
    • dronebl.org
    • spamrats.com
  • Die jeweiligen Gewichtungen natürlich individuell angepasst, sodass mindestens zwei verschiedene hits nötig sind damit eine Mail abgelehnt wird. Gerade uceprotect listet offenbar sehr großzügig
  • die Mailserver von 1und1 (mx.kundenserver.de) stehen leider auf einigen der erweiterten blockslists. Da die Gewichtung nach unten korrigiert (uceprotect).
  • local fuzzy storage umgesetzt
    • Check: rspamadm control fuzzystat
  • Automatisches Bayes Spam/Ham Training wenn die Mail in den Junk Ordner verschoben oder herausgeschoben wird: https://www.allerstorfer.at/rspamd-dovecot-ispconfig-automatic-spam-ham-training/
    • Das ergänzt um den local fuzzy storage, sodass als spam markierte Mails auch automatisch als hash aufgenommen werden (und in die whitelist bei ham markierung), mit entsprechend geringerer gewichtung
  • Mehrere Roundcube Plugins installiert um einfach Optionen für einzelne Mailboxen auch als User ändern zu können:
    • ispconfig3_roundcube plugins: U.a. Passwort ändern, fetchmail, Spamfilter policy ändern, Blacklist/Whitelist, einfache Filter
    • managesieve (managesieved und managesieve roundcube plugin): Erlaubt das Anlegen differenzierter Regeln für Mails, u.a. auch mit dem message body.
  • Eigenen DNS Caching resolver benutzen, damit der URI Check von Spamassassin gegen die Blacklists besser läuft. Siehe hier. (unbound)
  • rspamd bayes Filter trainiert mit dem Archiv von http://untroubled.org/spam/
    • statt bayes Training lokalen fuzzy storage damit befüllt: rspamc -f [FLAG] -w [WEIGHT] fuzzy_add [DIR]
  • externe Services in rspamd aktiviert/installiert:

Damit ist das Spamlevel im Moment auf ganz gutem Niveau, es wird sehr viel mehr gefiltert als mit der Standard-Konfiguration.

Noch auf der Todo-Liste:

  • Training mit dem untroubled Archiv automatisieren
  • automatisches fuzzy learning

Digitales Archiv – mein Ansatz

Mein persönlicher Ansatz zum digitalen Archiv, hier einmal etwas eingehender beschrieben. Evtl. findet es jemand nützlich? Das ganze ist auf Linux-Systeme ausgerichtet, vom Prinzip funktioniert sollte es aber unter allen System umsetzbar sein, die Dateien/Ordner verwenden. Das ist auch die Grundidee, es soll völlig plattformunabhängig funktionieren. Ich mag Basteln am Computer – auch wenn ich beruflich nichts mit IT zu tun habe. Irgendwann stellte sich dann einmal die Frage, was mit alten Unterlagen (damals waren es tatsächlich u.a. noch Klassenarbeiten und später Oberstufen-Klausuren) passieren sollte. Kistenweise Aufheben wollte ich nicht, wegschmeißen aber irgendwie auch nicht. Es lag nahe, sie digital aufzuheben, die Originale brauchte ich fürs Gefühl nicht mehr, wenn ich alles digital archiviert hätte. Letztlich ist so ein digitales Archiv entstanden, was jetzt mehr als 15 Jahre alt ist und stetig weiter wächst. Anfangs mühsam mit irgendeinem Scan-Programm einzeln gescannt und als jpg-Dateienabgelegt, bin ich natürlich dann auch irgendwann mit dem Thema OCR in Kontakt gekommen. Und etwas später dann mit Linux.

Grundprinzipien

Im Internet finden sich ebenfalls einige Artikel zu dem Thema, insbesondere Blogeinträge von Leuten mit ähnlichen Gedanken fand ich spannend. Gedanken heißt in dem Fall:

  • Die Unterlagen (meist Briefe im DIN A4 Format) sollen langfristig lesbar gespeichert werden (nicht 100 Jahre oder so, aber in 20 Jahren möchte ich sie schon gerne noch lesen können). Letztlich kommt man dann meist auf PDF. Djvu hatte ich auch mal probiert, bin aber wieder davon abgekommen. Wird nicht genug unterstützt.
  • Platzsparend. Also: Unterlagen als Schwarz-Weiß Scan ablegen, optimieren. Das Archiv ist auch so schon groß genug (~30 GB aktuell, aber auch mit vielen nicht-Dokumenten)
  • Durchsuchbar. Sprich: OCR soll natürlich benutzt werden, ich möchte mit einem entsprechenden Indexer (Recoll nutze ich dafür) Dinge finden können, bei denen ich mich nicht mehr an Dateinamen oder Speicherort erinnern kann. Um nach Dateien im Archiv anhand des Dateinamens zu suchen, nutze ich ganz einfach das Unix-Standardtool locate (mit etwas Bashscript-Hilfe, sodass je nach Befehl nur das Archiv durchsucht wird und nicht die ganze Platte).
  • Unabhängig. Damit ist unabhängig von irgendwelchen Software(-Herstellern), Formaten, Dateisystemen, Datenbanksystem, Betriebssystemen usw. gemeint. Einfach Dateien in Ordnern, ganz simpel.
  • Einfach. Sowohl beim Suchen (In den Ordnern nachschauen oder auch Recoll benutzen ist einfach, finde ich), als auch beim Befüllen. Im Internet finden sich Beschreibungen von (meiner Meinung nach) komplizierten Tag-Strukturen. Z.b. wurden Tags im Dateinamen abgelegt, und mit Sonderzeichen getrennt. Dann konnten sich alle Dateien in einem Ordner ansammeln und man kann einfach nach Tags durchsuchen. Das hat den Vorteil, dass man sich nicht entscheiden muss, ob man die Rechnung für die KFZ-Versicherung nun unter Auto ablegt oder unter Versicherungen. Das ist ein guter Ansatz. Aber hätte ich in den letzten 15 Jahren alles in einem (oder einer Hand voll) Ordner abgelegt, dann würde ich – glaube ich – aktuell nichts mehr gut finden. Die Disziplin, immer korrekte Tags zu vergeben (oder Tippfehler?), hätte ich vermutlich nicht gehabt. Ich habe mich daher einfach für Ordner entschieden, wie oben erwähnt. Das finde ich unheimlich einfach. Hin und wieder muss man für sich selber festlegen, ob man nun die Rechnungen für die Kasko-Versicherung eben unter Versicherungen verstaut oder im Auto-Ordner – aber man kann das auch ganz simple lösen, indem man einfach einen Softlink anlegt (oder meinetwegen Hardlink) und fertig. Mit der Zeit weiß ich aber einfach meist, wo ich Dinge ablege, die ich immer mal wieder brauche. Für alles, an das ich mich nicht erinnern kann, habe ich locate (die Dateisystem-Suche unter Linux) und wenn das immer noch nicht hilft, den Indexer, also recoll.

Hier eine beispielhafte Ordnerstruktur (nicht vollständig, der Privatsphäre wegen):
Beispiel Ordnerstruktur
Die Dateien werden nach diesem Schema benannt:

JJJJ-MM-DD_Firma_oder_Organisation_etc_Titel_des_Dokuments.pdf

also z.b.

2019-10-14_TK_Versicherungsbescheinigung.pdf

Und die liegt dann in

VERSICHERUNGEN/Krankenversicherung/

Ich habe irgendwann einmal die groben Kategorie-Ordner in Großbuchstaben geschrieben, warum auch immer, aber das spielt eigentlich keine Rolle.

Archiv befüllen

Vor allem das Bewerkstelligen des einfachen Befüllens hat anfangs etwas Mühe gekostet, denn ich habe auf die Schnelle kein Programm gefunden, was Dokumente scannt, auf schwarz-weiß optimiert, OCR durchführt und alles als PDF abspeichert – noch dazu, wenn ein Dokument aus mehreren Seiten besteht (z.B. Vorder- und Rückseite). Natürlich gibt es Tools, die das können, und noch viel mehr. Ich wollte es aber auch gerne auf der Kommandozeile haben, sodass ich einfach nur einen Befehl eingeben muss wenn das Papier im Scanner liegt, und der Rest wird erledigt. Dafür habe ich mir ein Python-Tool geschrieben, das genau das tut. Für komplexere Dokumente, mit Seiten im Querformat (die also nach dem Scannen gedreht werden müssen) und vielen Seiten nutze ich manchmal einfach Simple-Scan (und führe die OCR im Anschluss über ein anderes, selbst geschriebenes Script durch).

Der übliche Ablage-Stapel auf dem Schreibtisch muss dann nur noch einigermaßen regelmäßig durchgeschaut werden – unnötiges wandert in den Papiermüll, wichtiges wird eingescannt und wandert dann in den Papiermüll. Sehr wichtiges wird analog aufbewahrt, Bescheinigungen und so weiter, also Dinge, die man als Original aufheben möchte. Die landen dann eben doch in einem Ordner, aber dafür reichen mir inzwischen 2 Stück (einer für Privates, einer für Arbeit). Damit fällt das Papier-Archiv unheimlich schlank aus und ich habe alles, was dort im Ordner abgeheftet ist, auch vernünftig einscannt und durchsuchbar digital verfügbar.

Backup

Selbstverständlich braucht es eine regelmäßige Sicherung. Externe Festplatten, regelmäßig synchronisiert und an unterschiedlichen Stellen aufbewahrt, sollten hier für passable Sicherheit sorgen. Ich nutzte restic als Backup Software und habe 2 externe Festplatten die regelmäßig befüllt werden und an zwei völlig anderen Orten lagern, sodass selbst ein Wohnungs- oder Hausbrand mich höchstens ein paar Tage an Daten kosten würde (neben dem ganzen anderen Ärger).

Aktuelle Struktur


(mit filelight erstellt)

Fonts unter Arch Linux

Um die unglaubliche Menge an installierten Fonts mal etwas zu reduzieren bin ich bei der Suche u.a. auf diesen Reddit-Post gestoßen. Grober Inhalt:

  • ttf-google-fonts-git kann man durch adobe-source-code-pro-fonts ersetzen.
  • noto-fonts kann durch noto-fonts-lite ersetzt werden
  • noto-fonts-extra braucht es nicht unbedingt

Allein das reduziert schonmal erheblich die Menge der installierten Fonts, die ich eh nicht brauche. Aber die Pakete sind ja teilweise Abhängigkeiten von Thunderbird/Chromium/etc.

Thinkpad X13: Bildschirm wechselt nur noch durch die RGB Farben

Plötzlich, nach dem Starten aus dem Suspend-Modus, blinkt der Bildschirm nur noch in den Grundfarben (Weiß/Schwarz/Rot/Grün/Blau). Nichts anderes geht mehr. Aber: Ein externer Bildschirm zeigt noch die normale Anzeige, man kann sogar bedienen? Defekt? Zum Glück nicht:

Es ist ein bekanntes Problem, auch wenn ich auf die Schnelle die genaue Ursache nicht eruieren konnte. Auf der Unterseite des Notebooks gibt es aber ein winziges Loch, mit einer Nadel z.B. kann man vorsichtig hinein pieken und damit den Restknopf auslösen. Danach geht alles wieder wie vorher.

Quelle: https://www.reddit.com/r/thinkpad/comments/miai5r/my_ryzen_7_x13_is_flashing_colors_rgb_on_the/