Archiv des Autors: Heiko Thurat

Shell: Mit dd Volume ohne nicht zugeordneten Platz speichern

Eine SD-Karte mit nicht zugeordnetem Speicher, die 2 GB Platz beansprucht, wird auf einem 16 GB Datenträger bei Verwendung von dd mit 16 GB gespeichert.
Das mag bei der Größe der heutigen Datenträger zu verschmerzen sein, doch was passiert, wenn dieses (eigentlich 2 GB grosse) Image auf einem 8 GB Datenträger zurückgesichert werden soll? Der Platz reicht nicht aus, die Operation kann nicht durchgeführt werden! Weiterlesen

Git: Unterordner aus Github herunterladen

Github erlaubt normalerweise nur den kompletten Checkout eines Projektes, was für die Geduld des Users und die Bandbreite des Netzwerkes unbefriedigend ist. Als eines der wenigen Git-Repositories funktioniert aber ein SVN Fallback, der es erlaubt, ein beliebiges Unterverzeichnis herunterzuladen.

Dazu muss auf dem Zielrechner SVN installiert sein (sudo apt-get install subversion).

Der Befehl zum Download:

svn export  https://github.com/medianetix/demo.git/trunk/ordner1/ordner2/

An die https-URL des Repos (demo.git) wird der Ordner „trunk“ angehängt und dann der gewünschte Unterordner (hier: ordner1/ordner2).

Authentication realm: <https://github.com:443> GitHub
Username: medianetix
Password for 'medianetix': ***************

Nach Eingabe Username/Password wird dann der Download der Dateien aus dem entsprechenden Ordner/Unterordner gestartet:

A    ordner2
A    ordner2/.placeholder
A    ordner2/05-06-2018_1138.pdf
A    ordner2/06-02-2018_0547.pdf

Raspberry: Versionen bestimmen über Konsole

cat /sys/firmware/devicetree/base/model

Anzeigen der genauen Bordversion. Um die Board- und Versionsinfos auszulesen wird nachfolgender Befehl eingegeben:

cat /proc/cmdline | awk -v RS=" " -F= '/boardrev/ { print $2 }'

Auslesen des verwendeten Betriebssystem mit:

cat /etc/os-release

CPU-Infos ausgeben mit:

cat /proc/cpuinfo
# Anzahl der Prozessorkerne
cat /proc/cpuinfo | grep processor | wc -l

Postgresql: Records archivieren über common table expressions

Grosse Tabellen machen die Datenbank langsam. In diesem Beispiel werden die Datensätze einer Log-Tabelle nach einem Jahr (366 Tagen) in eine Archiv-Tabelle übertragen. Gelöst wird das Ganze elegant über Common Table Expressions (CTE).

WITH moved_rows AS (     
DELETE FROM log_messages a
WHERE log_time < now() - interval '366 days'
RETURNING a.*
) INSERT INTO log_messages_archive SELECT * FROM moved_rows;