Gruniversal Blog

Technisches und Persönliches

Autor: David Seite 1 von 3

Bootfähigen USB Stick für Windows 10 Installation unter Linux Mint erstellen

Für einen älteren Laptop habe ich kürzlich eine kleine Rettungsaktion durchgeführt und dabei u.a. die Festplatte gegen eine SSD ausgetauscht. Nun brauchte das Gerät natürlich wieder ein Betriebssystem und die Wahl des Nutzers fiel auf Windows 10 Pro.

Da das entsprechende ISO-Image nicht auf eine DVD passt, musste ich einen bootfähigen USB-Stick erstellen, der das ISO transportieren kann. Aber läuft das eigentlich unter Linux? Welches Toolset braucht man dafür?

Nach der Lektüre verschiedener Beiträge (u.a. vom LinuxMagazin) hab ich es dann mit einer Kombination aus Gnome Disks und Unetbootin versucht.

Weiterlesen

Alternative CDDB Server

Ich gehöre zu der Generation, die noch CDs kauft und diese dann über Tools wie z.B. Ripper X in MP3 umwandelt, damit ich die Musik flexibel unterwegs bzw. an verschiedenen Geräten hören kann.

Um die erstellten MP3s nicht manuell benennen zu müssen, nutze ich bisher gern die CDDB-Funktion in Ripper X. Hierbei wird auf Basis der Längen der Tracks in der “Compact Disc Database” nachgeschlagen, um welche CD es sich handelt und die entsprechenden Titel und Interpret-Informationen zurückgeliefert. Die MP3s werden dann automatisch entsprechend benannt.

Zumindest war das bislang so. Nun blieb der entsprechende CDDB-Server leider stumm. Wie ich bei Heise nachgelesen habe, wurde das Projekt des Betreibers Magix leider offenbar eingestellt. Zum Glück gibt es verschiedene Alternativ-Server, wovon einige allerdings ebenfalls nicht mehr aktiv sind.

Aktuelle Alternativen:

  • freedb.freac.org/~cddb/cddb.cgi
  • freedb.dbpoweramp.com/~cddb/cddb.cgi

Stand heute mit Ripper X nicht (mehr) funktionstüchtig:

  • freedb.musicbrainz.org/~cddb/cddb.cgi
  • freedb2.org/~cddb/cddb.cgi
  • gnudb.gnudb.org/~cddb/cddb.cgi

Ich hab mich nun erstmal für freedb.freac.org entschieden, weil der am schnellsten antwortete und hoffe sehr, dass der Dienst nicht perspektivisch komplett verschwindet.

Wobei.. viele meiner CDs kennt CDDB nun auch nicht, insofern würde ich das gelegentliche Abtippen wohl überleben.

Flatpak Cache und unbenutzte Runtimes löschen

Neben apt nutze ich auf meinem Linux Mint System auch gelegentlich Flatpak zur Verwaltung von Anwendungen. Dies ist dann der Fall, wenn der Maintainer diesen Weg empfiehlt.

Nun ist mir aufgefallen, dass Flatpak nicht eben sorgsam mit meinem Speicherplatz umgeht. So wird einerseits ein Cache unter /var/tmp/ angelegt als auch ein Repo unter /var/lib/.

Das ist per se kein Problem, allerdings ist Flatpak offenbar schlecht darin diese Ordner aufzuräumen, daher sammeln sich hier mit der Zeit immer mehr Daten an.

Man muss Flatpak immer mal sagen, es soll sein Zimmer aufräumen :)

Linux Mint Admin

Um Flatpak auf die Sprünge zu helfen, kann man mit diesem Befehl die nicht mehr genutzten Runtimes löschen:

$ flatpak uninstall --unused -y

Dabei werden praktisch veraltete Versionen der Anwendungen, die Flatpak mal heruntergeladen hat, entfernt. Lässt man das -y zeigt Flatpak auch, welche Anwendungen in welcher Version dies betrifft.

Für die Bereinigung der Caches habe ich im GitHub Forum eine praktische Lösung gefunden. Dabei wird geprüft, ob Flatpak gerade läuft und falls nicht der Cache gelöscht. Statt wie beschrieben den Service einzurichten, kann man den Befehl natürlich auch einfach auf der Kommandozeile ausführen:

$ bash -c "! pgrep -x flatpak && rm -r /var/tmp/flatpak-cache-*"

In meinem Fall hat das gerade ca. 2 GB Daten freigegeben, wobei ich Flatpak – wie beschrieben – wirklich wenig nutze.

Ich hab das Ganze nun noch in meinem /etc/anacrontab hinterlegt, damit An(n)a dem Flatpak regelmäßig sagt sein Zimmer aufzuräumen :)

ftp-mysql-dump: eine Datenbank per FTP abholen

Die letzten Wochen arbeite ich recht intensiv an einem aktuellen Projekt und habe daher wenig Zeit aufs Bloggen verwendet. Dazu werde ich später sicherlich nochmal was schreiben. In diesem Zusammenhang kam ich aber an eine Aufgabenstellung, die mir immer mal wieder über den Weg läuft:

“Wie holt man eigentlich am besten einen Datenbankstand vom Webserver, wenn man kein SSH zur Verfügung hat?”

David

Bisher habe ich dafür oft Tools wie Adminer genutzt. Das klappt gut, aber da ich ein Freund von Automatisierung bin, habe ich diesmal ein Tool gesucht, welches sich in ein Makefile einbinden lässt. Meine Internet-Recherche hierzu stellte mich nicht unbedingt zufrieden, daher entschied ich mich das Ganze einfach selbst umzusetzen.

Die Grundidee war dabei möglichst ein Script zu haben, welches ohne große Abhängigkeiten funktioniert und sich automatisch zum FTP verbindet, dort dann ein Script hochlädt, dieses ausführt und direkt danach wieder löscht.

Weiterlesen

PHP Mails lokal loggen

Für ein PHP Projekt wollte ich kürzlich prüfen, welche Mails die Anwendung verschickt. Es ging nur um ein kleines Detail und daher wollte ich keine aufwändige Mailkonfiguration aufbauen, sondern einfach nur den Quellcode der Mails in eine Logdatei schreiben.

Nachdem ich mich zunächst bei sendmail umgesehen habe, ohne eine passenden Parameter zu finden, der die Mails nur in die Queue packt ohne sie aber zu versenden, bin ich dann in einem Blog auf eine einfache Lösung gestoßen.

Dazu hab ich einfach folgendes Script erstellt und ausführbar gemacht:

#!/usr/bin/php
<?php
  $logfile = '/var/log/phpmail.log';
  $log_output = "****" . date('Y-m-d H:i:s') . "****\n";
  $handle = fopen('php://stdin', 'r');
  $count = 0;
  while(!feof($handle)) {
    $count++;
    $buffer = trim(fgets($handle));
    if ($count <= 12) # Output header information
      $log_output .= $count . ": " . $buffer . "\n";
    else # Output body
      $log_output .= $buffer . "\n";
  }
  file_put_contents($logfile, $log_output, FILE_APPEND);
?>

Damit es beim “Senden” einer Mail ausgeführt wird, reicht eine einfache Anpassung in der php.ini des Apache:

$ sudo vim /etc/php/7.2/apache2/php.ini
; send mail to /var/log/phpmail.log
sendmail_path = /path/to/phpmail

Das wars schon. Mehr ist nicht notwendig und ab sofort kann man den Mailinhalt leicht aus der phpmail.log herauslesen, z.B. mit tail:

$ tail -f /var/log/phpmail.log

Mein Problem war in 10 Minuten gelöst. Danke Internet! :)

Matomo Consent vs. Opt-Out

Ich engagiere mich im Moment ehrenamtlich für die Webseite eines Vereins und stand in diesem Zusammenhang vor der Aufgabe das Webanalysetool Matomo Analytics datenschutzkonform in die bestehende WordPress Instanz einzufügen.

Über Matomo soll das Verhalten der Nutzer auf Basis anonymisierter Daten analysiert werden um die Verwendung der Seite besser zu verstehen und dann entsprechend Ansatzpunkte für eine Verbesserung der Website zu gewinnen.

Matomo bietet grundsätzlich zwei verschiedene Wege um abhängig vom Einverständnis des Nutzers das Tracking zu steuern: Opt-Out und Consent.

Doch was ist der Unterschied und welcher Weg ist der bessere?

Weiterlesen

Bash Script: Export Sony

Im Oktober 2016 habe ich mir einen neuen MP3 Player von Sony gekauft. Konkret den Sony Walkman NWZ-15A. Recht bald darauf fiel mir dann auf, dass die Titel innerhalb eines Albums nicht in der korrekten Reihenfolge abgespielt werden. Außerdem hat mich gestört, dass bei den meisten Titeln keine Album-Cover angezeigt werden.

Das war zu dem Zeitpunkt ärgerlich, aber auch eine nette persönliche Herausforderung. Zur Lösung habe ich mich für ein Bash-Script entschieden und in mehreren Phasen dann die Probleme lösen können. Die letzten größeren Anpassungen erfolgten dann August 2018, wo ich vor allem eine Funktion ergänzte um bestehende Dateien zu überspringen und das Cover-Problem endlich vollständig lösen konnte.

Und heute? Nachdem ich meinen Player mal wieder damit aktualisiert habe, dachte ich, es wäre vielleicht ne nette Idee den Code öffentlich zu teilen. Also habe ich noch ein wenig aufgeräumt und ihn dann im GitLab zur Verfügung gestellt. Einfach so :)

Lokales WordPress Staging

Normalerweise sind die WordPress Core- und Plugin-Updates relativ stabil und daher kann man ohne große Sorge sein, dass bei einem der zahlreichen Updates alles gut gehen wird.

Natürlich ist es hilfreich die Update-Notes vorab zu lesen um den Umfang des Updates abzuschätzen und zu wissen, was man genauer prüfen sollte. Wenn es dann wirklich schief geht, hat man normalerweise durch Backups vorgesorgt.

Bei kritischen Updates erscheint dieser Weg jedoch unbefriedigend, weil man keine Möglichkeit hat vorab alles in Ruhe zu testen. Hier hilft nur der Weg über ein Staging-System. Aber wenn der primäre Update-Prozess über das Live-System geht, wie kann man dann ein solches Staging-System realisieren?

Dazu habe ich mir einen nützlichen Workflow bereitgestellt.

Weiterlesen

Mein Entwicklungsworkflow

An verschiedenen Stellen habe ich schon zu meiner lokalen Entwicklungsumgebung geschrieben, aber vielleicht ist es ganz nützlich, wenn ich das nochmal etwas erläutere.

Normalerweise entwickle ich im Moment für PHP, manchmal auch für die Bash-Shell. Üblicherweise bin ich auch der einzige Entwickler bei meinen Projekten, daher bin ich komplett frei in meinen Rahmenbedingungen.

Vieles ist sicherlich trotzdem mehr oder weniger Standard, aber hin und wieder kann man sich ja doch etwas abschauen und besonders bei der Versionskontrolle und dem Deployment arbeite ich jetzt anders als früher.

Weiterlesen

Samsung Xpress C480W unter Linux Mint 19

In den beiden letzten Beiträgen habe ich gezeigt, wie überwiegend reibungslos mein Update auf Linux Mint 19 sowie die Nacharbeiten hierzu waren.

Damit war ich zufrieden, ahnte aber noch nicht, dass sich hieraus noch eine echte “Linux Story” entwickeln würde. Damit meine ich eine Geschichte, bei der man auf ein technisches Problem stößt – meist im Zusammenhang mit Hardware – und bis zum Ende nicht weiß, ob man es lösen kann oder sich neue Hardware besorgen muss.

Konkret war mir beim Check der verschiedenen Workflows, die ich so gelegentlich nutze, aufgefallen, dass mein Multifunktionsdrucker nicht mehr als Scanner erkannt wurde. Daraus entspann sich dann ein wechselhafter und lehrreicher Abend.

Weiterlesen

Seite 1 von 3

Präsentiert von WordPress & Theme erstellt von Anders Norén