Freitag, 3. April 2015

Fotos sortieren leicht gemacht

Zuerst installieren wir das exiftool:
sudo apt-get install libimage-exiftool-perl
Danach können wir mit exitftool die Fotos sortieren lassen:
exiftool '-Directory<DateTimeOriginal' -d %Y/%m/%d .
In diesem Fall werden alle Fotos im lokalen Verzeichniss in eine Struktur ./YYYY/mm/dd verschoben.

Sonntag, 13. April 2014

Tool Tip: Paketversion im Repository ermitteln

Manchmal benötigt man die Versionsnummer eine Pakets in den APT-Repositories, um den richtigen Installationskandidaten zu ermitteln.

In meinem Fall war dies das Paket maven. Mit war nicht klar, welche Version installiert wird, da es noch ein Paket maven2 gab.

apt-cache policy packagename

Ein apt-cache policy maven brachte die Erkenntnis:
maven:
  Installiert:           (keine)
  Installationskandidat: 3.0.4-6
  Versionstabelle:
     3.0.4-6 0
        500 http://mirrors.liquidweb.com/ubuntu/ saucy/universe i386 Packages

Somit installiert das Paket maven das aktuelle Maven 3 und nicht, wie zuerst von mit vermutet Maven 1.

Quelle: http://askubuntu.com/questions/340530/how-can-i-check-the-available-version-of-a-package-in-the-repositories

Freitag, 4. April 2014

Authentifizierung mit USB-Stick unter Linux

So simpel, so einfach, so gut.

Lacie PetiteKey (c)

Anleitungen gibt es hier:
http://linuxconfig.org/linux-authentication-login-with-usb-device
http://wiki.ubuntuusers.de/Authentifizierung_mit_USB-Stick

Kurzversion:
$ sudo apt-get install pamusb-tools libpam-usb pmount
$ sudo pamusb-conf --add-device my-usb-stick
$ sudo pamusb-conf --add-user ubuntu-user
$ pamusb-check benutzer  


Ich habe für die Daten noch eine extra Partition (versteckte FAT32) angelegt, damit man nicht aus Versehen den Schlüssel kaputt macht.

Steckt der Schlüssel, kann sudo ohne Eingabe des Passworts ausgeführt werden. Das ist schon einmal ganz praktisch.

Nun noch die Anpassungen für den pamusb-agent, wie weiter unten im UbuntuUsers-Wiki beschrieben und ein Ziehen des Schlüssels sperrt den Bildschirm und ein Stecken entsperrt ihn wieder. Noch praktischer!

Samstag, 25. Mai 2013

Überflüssige Linux-Kernels entfernen


Um die Liste der installierten Linux-Kernels klein zu halten und auch um Plattenplatz zu sparen, kann man ab und zu folgenden Befehl ausführen:

sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

Quelle: http://forum.ubuntuusers.de/topic/ueberfluessige-alte-kernel-deinstallieren/

Montag, 18. März 2013

Shell-Skript ausführen wenn Netzwerk verfügbar

Ich experimentiere gerade mit meiner Fritz!Box herum und muss feststellen, dass die UPnP-Implementierung scheinbar nicht so verträglich mit den unter Ubuntu verfügbaren Clients ist. Somit gehe ich den "Umweg" über Samba.

Nun funktioniert das Mounten natürlich nur, wenn ein Netzwerk verfügbar ist und dann muss es auch noch mein eigenes sein. :-)

Was liegt da näher als den Event des Verbindens mit dem Netzwerk abzugreifen und ein entsprechendes Skript zu starten. Fündig wurde ich hier: Start shell script on Network Manager successful connection.
#!/bin/bash

IF=$1
STATUS=$2

if [ "$IF" == "wlan0" ]
then
    case "$2" in
        up)
        logger -s "NM Script up triggered"
        ;;
        down)
        logger -s "NM Script down triggered"
        ;;
        pre-up)
        logger -s "NM Script pre-up triggered"
        ;;
        post-down)
        logger -s "NM Script post-down triggered"
        ;;
        *)
        ;;
    esac
fi
Die Idee war, dass immer dann, wenn ich mich in meinem Heim-WLAN anmelde die Samba-Verbindung zur Fritz!Box aufgebaut werden soll und wenn ich das WLAN verlasse, die Verbindung getrennt wird.

Wie man die ESSID ausliest, habe ich hier gefunden: NetworkManager/Dispatcher.
## ESSID des verbundenen Netzwerks bestimmen
ESSID=$(iwconfig $IF | grep ESSID | cut -d":" -f2 | sed -e 's/"//g')
Problem war nun, dass es noch Leerzeichen am Ende gab, also wurde der Befehl entsprechend erweitert:
## ESSID des verbundenen Netzwerks bestimmen
ESSID=$(iwconfig $IF | grep ESSID | cut -d":" -f2 | sed -e 's/"//g' | sed -e 's/^ *//g' -e 's/ *$//g')
Nun lief alles wie gewünscht. Beim Verbinden mit dem "richtigen" WLAN wird die Verbindung aufgebaut und beim Verlassen wird immer ein Unmount ausgeführt, da beim Abmelden die ESSID nicht mehr verfügbar ist. Hier nun das komplette Skript:
#!/bin/bash

IF=$1
STATUS=$2

ESSID_HOME="home_wlan"

## ESSID des verbundenen Netzwerks bestimmen
ESSID=$(iwconfig $IF | grep ESSID | cut -d":" -f2 | sed -e 's/"//g' | sed -e 's/^ *//g' -e 's/ *$//g')

if [ "$IF" == "wlan0" ]
then
    case "$2" in
        up)
        logger -s "NM Script up triggered"
        if [ "$ESSID" == "$ESSID_HOME" ]; then
                logger -s "NM Script mounting fritz-box"
                # mount als Benutzer ausführen, damit das Icon im Starter erscheint
                su compuscitor
                sudo mount /media/fritz-box
        fi
        ;;
        down)
        logger -s "NM Script down triggered"
        logger -s "NM Script unmounting fritz-box"
        umount /media/fritz-box
        ;;
        pre-up)
        logger -s "NM Script pre-up triggered"
        ;;
        post-down)
        logger -s "NM Script post-down triggered"
        ;;
        *)
        ;;
    esac
fi

Donnerstag, 14. April 2011

Link-Tipp: Awesome code syntax highlighting made easy

In meinem vorigen Post habe ich zur besseren Darstellung der Code-Schnipsel diese mit SyntaxHighlighter 3.0 hervorgehoben. Wie SyntaxHighlighter in blogger.com integriert werden kann, ist hier sehr anschaulich erklärt:

Mittwoch, 13. April 2011

CSS für Beispiele mit Terminalausgabe

Auf der Suche nach einer adäquaten Anzeige von Terminalausgaben bin ich im Blog "Code & rando" von Olivier Mengué fündig geworden. [1]

Die Angaben zum CSS müssen nur in Blogger-Template eingefügt werden. Hier mein angepasstes CSS (Design -> Vorlagen-Designer -> Erweitert : CSS hinzufügen):
/*
 * terminal highlighting
 * thanks to Olivier Mengué
 */
pre { font-size: 1em }
pre.terminal { margin-left: 1pt; padding: 5pt; }

/* Text not embedded in samp or kbd will be in red, to easily detect errors */
pre.terminal { background: #3f3f3f; color: #f00; }
pre.terminal samp.prompt { color: #999; }
pre.terminal samp { color: #eee; }
pre.terminal kbd { color: #fff; font-weight: bold; }
pre.terminal var { color: #0f7fff; font-style: italic; }

Ein Beispiel:
<pre class="terminal unix">
<samp class="prompt shell">foo@bar:~$ </samp><kbd class="shell">whoami</kbd>
<samp>foo</samp>
<samp class="prompt shell">foo@bar:~$ </samp><kbd class="shell">date</kbd>
<samp><var>Mi 13. Apr 16:42:56 CEST 2011</var></samp>
</pre>

Ergebnis:
foo@bar:~$ whoami
foo
foo@bar:~$ date
Mi 13. Apr 16:42:56 CEST 2011