Mittels bash und diff Duplikat-Bilder finden

von   Keine Kommentare

Wir nutzen eine Eye-Fi Karte, um Schnappschüsse, die wir im Alltag machen, direkt auf unseren zentralen Netzwerkspeicher übertragen zu bekommen. Also keinerlei händisches Speicherkarte in das Notebook stecken. Und v.a. werden die Bilder dadurch auch automatisch zeitnah im Backup gesichert.

Die Eye-Fi Karte bietet eine Funktion “endless Memory” und realisiert das darüber, dass die ältesten Bilder auf der Karte automatisch gelöscht werden, wenn diese zuvor erfolgreich per Funk übertragen wurden. Natürlich geht das nur, wenn man die “Server”-Software unter Windows oder Mac laufen hat. Server in Anführungszeichen, da damit die Windows oder Mac-Software gemeint ist, in Ihrer Funktion, Bilder entgegenzunehmen aber in einer Server-Funktion arbeitet.

Ich nutze aber eben weder die Windows- noch die Mac-Software sondern das Rifec genannte Perl Skript, um es auf unserem “Server”, auch bekannt als Netbook, dauerhaft laufen zu haben. Somit entfällt die Funktion, Bilder auf der Karte zu löschen, da das seitens des Perl-Skripts nicht unterstützt wird.
Was bleibt ist also ein Datenbestand an Bildern auf der Eye-Fi Karte und die per Wlan übertragenen Bilder auf der Linux-Kiste.

Händisch will man das aber nicht unregelmäßig aussortieren, wenn man mal die Eye-Fi SD-Karte in das Netbook steckt. Daher habe ich mir ein kleines Bash-Skript geschrieben, was nach allen Bildern (bereinigt von “IMG_” und “.JPG”-Dateiendung) des aktuellen Ordners in einem konfigurierten Verzeichnis sucht und jedes Suchergebnis mittels diff vergleicht. Standardmäßig spuckt es nur aus, ob Duplikate gefunden wurden und optional kann man die Bilder im Start-Ordner, der entweder die Eye-Fi Karte oder eben ein Temp-Ordner für auszusortierende Bilder ist, auch löschen lassen.

Da mit diff tatsächlich nur identische Dateien gefunden werden und ich die Funktionalität ausgiebig getestet habe, bin ich ziemlich sicher, dass wirklich nur Duplikate gelöscht werden. Daher steht als nächstes an, dass dieses Skript automatisch gestartet wird, wenn die Eye-Fi Karte eingesteckt wird.

Eine Erweiterung in der Zukunft könnte sein, statt simplem diff, den JPEG-Header zu ignorieren und mittels Jhead nur das Bild zwischenzuspeichern und dieses zu vergleichen, um auch Duplikate zu finden, die sich lediglich im Header (z.B. Uhrzeit-Anpassungen) unterscheiden.

Übrigens das Skript spuckt sogar in bunt aus, ob Duplikat oder nicht ;)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
PICPATH="/path/to/images"
LG="\033[01;32m"
LR="\033[01;31m"
CN="\033[00;00m"
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
 
param="$1"
for img in *.*
do
echo -e "\n*** $img ***"
img_number=`echo $img | sed -e "s/IMG_//gi" -e "s/\.JPG//gi"`
dupe_found="no"
for found in `find $PICPATH -iname "*$img_number*"`
do
diff -q "$img" "$found" > /dev/null
if [ $? == 0 ]
then
dupe_found="yes"
echo -e $LG"identisch:\t$CN $found"
else
echo -e $LR"verschieden:\t$CN $found"
fi
done
if [ "$dupe_found" == "yes" ]
then
echo "At least one dupe found. Executing 'rm $img'"
if [ "$param" == "-d" ]
then
echo "Deleting/rm ing $img"
rm $img
else
echo "Only testing not deleted."
fi
fi
done
IFS=$SAVEIFS

Natürlich ist die Nutzung auf eigene Gefahr und ich übernehme gar nichts, sollte doch was falsches gelöscht werden ;)
Ein Hinweis noch: Das Skript muss natürlich in einem Ordner außerhalb des PICPATH gestartet werden, die zu untersuchenden potentiellen Duplikate dürfen sich also nicht innerhalb des PICPATH befinden, ansonsten werden natürlich genau die Bilder gefunden, nach denen man gerade suchen lässt…


Tags: , , , ,

Sonos unter Linux nach dem 3.7, 3.8 und 4.0 Update

von   Keine Kommentare

Letzte Woche (egal ob saudische oder deutsche Woche ;) ) gab es mal wieder die Information von Sonos, dass es ein Update für das Multi-Room-Audio System geben würde. Dieses Mal sollte der Desktop-Player eine Generalüberholung bekommen. Da klingelten bei mir auch direkt die Alarmglocken. Wir sind hier mit unserem unter Linux und Wine laufenden Sonos-Controllern wohl eher nicht das was man als Durchschnittsnutzer bezeichnen würde. In den Kommentaren unter dem Ankündigungs-Blog-Post hieß es zwar, dass auch der neue Controller unter Wine laufen würde, aber man weiß ja nie.

Un so kam es dann auch, dass der neue Controller sich nicht installieren lassen wollte. Irgendwas damit, dass Mono in Version 2.8 gebraucht wird. Aber auch die Installation dessen half nichts. Zumal Mono ja eigentlich .NET für Linux bereitstellen soll, es also wenig Sinn macht, dass Sonos 3.7 unter Wine Mono benötigt.

Bei ein wenig googeln fand ich dann aber glücklicherweise einen Beitrag im Sonos Forum, der beschreibt, wie man dem Controller in Version 3.6 bei bringt, sich für einen Controller der Version 3.7 zu halten. Kurz gesagt den String der Versions-Nummer gegen die beim Update-Check verglichen wird durch den aktuellen ersetzen.

Langfassung:

  1. Die Ip eines Sonos Zoneplayer mit: http://ip-des-players:1400/status/VERSION aufrufen und die Versionsnummer notieren (bei mir 17.5-51200). Bei mir war das 17.4-5200.
  2. In $HOME/.wine/drive_c/Programme/Sonos/pc…dll mittels vim -b (oder jedem anderen Editor in Binär-Modus) nach der alten Zeichenkette 16.7-48310 suchen und durch die aus dem ersten Schritt ersetzen.
  3. Desktop-Controller in Version 3.6 starten und sich darüber freuen, dass er auch mit den Zoneplayern in Version 3.7 klarkommt.

Schöner wäre es natürlich, würde Sonos entweder einen nativen Controller für Linux rausbringen oder aber der Controller würde problemlos mit Wine laufen. Zu hoffen bleibt auch, dass bei zukünftigen Updates dieser Workaround noch funktioniert.

UPDATE 14. Dezember 2012: Zwischenzeitlich gab es weitere Updates durch Sonos. Die neuen Version-Strings waren bei mir 19.3-53220 und der aktuellste ist 19.4-59140 (Sonos 3.8.3). Auch damit funktioniert der 3.6.1 Windows Controller via Wine unter Linux noch.
Update 14. Februar 2013: Sonos veröffentlichte die Tage Version 4.0 und nach dem Ersetzen von 19.4-59140 durch die jetzt aktuelle Version 21.4-61160 geht der alte 3.6.1 er Windows Controller nach wie vor auch unter Linux mit der 4er Version auf den Sonos Geräten.


Tags: , , ,

Google+ sowie Facebooks VideoChat

von   7 Kommentare

Eine kleine Zusammenfassung der Dinge, die mir an Google+ aufgefallen sind. Der Einfachheit halber in Pro und Contra eingeteilt :)

Pro:

  • Notifications und die Möglichkeit direkt zu interagieren, ohne zum jeweiligen Beitrag zu springen. Laut Post von Frank soll es wie bei FB schon eine Änderung des Favicons wie bei FB geben.
    google-plus-notification
    facebook-notify-favicon

    Funktioniert bei mir aber noch nicht.

  • Circles das einsortieren funktioniert wirklich leicht.
    google-plus-circles
  • asymetrische Kontakte wie bei Twitter. Funktioniert bei FB, ohne Bestätigen der Anfrage zwar auch, aber wirkt nicht so, als sei es gewollt.
  • Hangout als VideoChat auch in der Gruppe. Funktioniert auch unter Linux mit zwei/drei Klicks zum Installieren der Erweiterung.
  • Integration vom +1-Button in die Google Suche. Kann man auch als Bookmarks verwenden.

Contra:

  • Auswählen der Circles beim Posten finde ich noch umständlich.
    google-circles-auswahl
  • Von unterschiedlichen Leute gleiche gepostete Inhalte, werden nicht gruppiert -> unübersichtlich.
    doppelt-geshared
  • allgemein hätte ich G+ gerne etwas kompakter.
  • fehlender RSS-Feed für den Stream.
  • mir fehlt die Beschränkung auf 140 Zeichen. Führt meiner Meinung nach zu präziser formulierten Nachrichten zu denen alle gezwungen waren.
  • +1 auf Kommentare oder Posts werden auf der +1-Seite nicht angezeigt. Zudem wäre es klasse, würden die +1 auf einer externen Seite und +1 für einen Beitrag zu dieser externen Seite irgendwie gemeinsam geführt/nachvollziehbar gemacht. Das macht FB aktuell auch noch nicht.
  • fehlende Integration in Anwendungen. Wird vermutlich mit dem Öffnen einer API geschehen.

Facebooks VideoChat

Wie bei Pro erwähnt, funktioniert der VideoChat von Google+ namens Hangout einfach. Sowohl bei mir unter Ubuntu Linux, als auch was ich von vielen anderen gelesen habe. Dazu kommt, dass kostenlos ein Gruppen-Chat möglich ist, bei dem man auch noch zusammen ein Youtube-Video oder andere Dinge gemeinsam machen kann.

Das alles ist bei Facebooks gestern vorgesteller Skype Integration nicht möglich. Zum einen funktioniert Facebooks VideoChat unter Linux einmal nicht. Zum anderen sind nur 1:1 Kontakte möglich. Klingt für mich nach einem dicken Plus für Google+ (was für ein Wortspiel ;) ).

Abgesehen davon bleibt aber noch zu testen, wie sich Hangout z.B. mit den Internet-Bedingungen hier in Saudi schlägt.


Tags: , , , , , , , , , , ,

Halbautomatisches Offsite-Backup mit rsync

von   Keine Kommentare

So mal wieder ein technischer Beitrag :)

Die Tage hörte ich von Datenverlust, durch einen Festplattenschaden einer externen Platte in der Familie. Das rief mir dann unsere Situation hier in den Kopf und dass alle unsere Bilder, die wir seit März 2010 gemacht haben, auf einer einzelnen externen Festplatte sind. Im Endeffekt kein wünschenswerter Zustand für den Fall eines technischen Defekts.

Wir kauften dann eine 2,5″ externe Platte, um auch mal eine Platte zu haben, die man leichter mitnehmen kann, da sie nur per USB an den Rechner gestöpselt wird.

Blieb nur noch die Frage nach einem regelmäßigen automatischen Backup, um dass man sich möglichst wenig kümmern muss. Klar war, dass die Backup-Platte ganz im Sinne einer Offsite-Lösung, in der Firma gelagert werden sollte, um auch im Falle eines Notfalls im Haus (Brand, usw.) gewappnet zu sein. Die Platte wird also nur einmal die Woche mitgenommen angestöpselt und am nächsten Tag geht sie zurück in die Firma.

Wenn die Platte im Haus an das unter Ubuntu laufende Netbook angestöpselt wird, löst eine UDEV-Regel, dass automatisch ein Backup mittels rsync gemacht wird:

ACTION==”add”, ATTRS{idVendor}==”1058″, ATTRS{idProduct}==”1023″, RUN+=”/home/crash/bin/ext_hdd_backup.sh”

Das aufgerufene Skript ist dabei nur ein Startskript, um das eigentliche Skript zu detachen. Mit einem einfachen “&” im Aufruf der UDEV-Regel funktionierte das bei mir nicht. Ohne zu detachen/das Skript in den Hintergrund zu schieben, stoppt UDEV aber die Bearbeitung, so dass die Platte nicht eingebunden wird. Natürlich könnte man das Einbinden auch selbst übernehmen. Das Detachen fand ich aber einfacher.

#!/bin/bash
if ! /home/crash/bin/udevlock /home/crash/exthdd/exthdd.lock; then echo “Another instance running…”; exit 1; fi
touch “/home/crash/exthdd/exthdd`date“date +%N`”
/home/crash/bin/start_ext_hdd_backup.sh &

Udevlock ist ein kleines Skript, um udev entgegenzuwirken, das aufgerufene Skript mehrfach zu starten.
Im aufgerufenen Skript passiert dann das Backup per rsync:

#!/bin/bash
rsync=”/usr/bin/rsync”
rsync_cmd=”$rsync -a -P –delete-after –exclude=oldbart/* /media/SAMSUNGSTOR/ /media/Elements/”
while true
do
if [ -d "/media/Elements" ]
then
rm /home/crash/dir_not_exists
if [ ! -f "/home/crash/rsync_running" ]
then
touch /home/crash/rsync_running
su crash -c “$rsync_cmd”
rm /home/crash/rsync_running
rm /home/crash/exthdd/sync_started
fi
exit
else
touch /home/crash/dir_not_exists
fi
sleep 5
done

Durch die while-Schleife und das if wird geprüft, ob die Backup-Platte mittlerweile eingehängt ist. Sobald das der Fall ist, geht das Backup mittels rsync von Produktiv-Platte in Richtung Backup-Platte los. Bisher läuft das ziemlich gut und Befürchtungen die Daten auf der externen Platte hier könnten verloren gehen, haben sich mittlerweile erledigt. Fehlt nur noch die Daten der Notebooks auch auf die externe Platte zu spiegeln ;)


Tags: , , , ,

Kubuntu mit Epson V300 Scanner und (k)ein Problem

von   Keine Kommentare

Nach etwas mehr als 5 Jahren privater Linuxnutzung bin ich es gewohnt vor Neuanschaffung von Rechner Peripherie zumindest drauf zu achten, ob ich mir mit der entsprechenden Wahl nicht ein Gerät an Land ziehe, dass im schlechtesten Fall gar nicht mit Linux zusammenarbeiten will.

So habe ich auch vor der Anschaffung eines Scanners etwas recherchiert und kam zum Entschluss, dass der Epson Perfection V300 Photo Scanner die passende Wahl für unsere Zwecke wäre. Epson bietet von sich aus passende Pakete und sogar eine Software zum Scannen an, so dass dem unproblematischen Nutzen dieses Lichtreflektionsabtastgeräts eigentlich nichts im Wege steht. Man ahnt es schon, das kleine Wörtchen “eigentlich” hat sich da in den Satz geschlichen.

8305-epson_v300_scanner

Jedenfalls kam der Scanner und macht ausgepackt auch eine prima Figur, auch wenn er vielleicht etwas groß geraten ist. Andererseits hat er auch eine Durchlichteinheit, so dass ihm das verziehen sei. Also kurz die Treiber installiert und die Software angeworfen, aber keine Verbindung möglich. Hmm, aber lt. den vielen Seiten, die ich zuvor konsultiert hatte soll das doch ohne weiteres gehen….

Nach einigem hin und her stellte sich heraus, dass ich die Treiber für den gut 6x so teuren V700 installiert hatte. Naja ich hab schon gehört, dass man einen Golf auch mit Formel 1 Reifen fahren kann, aber ob da dann mehr als geradeaus fahren drin ist, darf bezweifelt werden. Sprich man sollte auch einfach die richtigen Treiber benutzen, dann klappt es auch mit dem Scanner. Anscheinend hat mein Hirn aber tatsächlich Probleme V300 und V700 auseinander zu halten. Als ich diesen Text schrieb, war ich bei der Erwähnung von V300 wieder kurz davor V700 zu schreiben. Zumindest war es also keine kurzfristige geistige Umnachtung, sondern vielmehr Dauerzustand ;) Jetzt weiss ich ja Bescheid :)


Tags: , , , ,
Seiten: 1 2 3 4 5 ... 12 13 Ältere