Freitag, 29. April 2011

Resize LUKS crypted partition without and sans LVM

Wer mal wissen will wie sowas von statten geht, hier meine Anleitung.


newSizeInByte=$2
newSizeInSectors=$[$newSizeInByte/512];
cryptDevice="$1"
cryptedDevice="/dev/mapper/resizeDevice"

echo "Opening the crypt partition"
cryptsetup luksOpen "$cryptDevice" "$cryptedDevice"

echo "Resizing cryptED partition";
resize2fs "$cryptedDevice" $newSizeInSectors;

echo "Resizing crypt partition";
cryptsetup --size $newSizeInSectors resize "$cryptedDevice"

offset=2056
echo "Guessing offset to $offset sectors";
cryptsetup status "$cryptedDevice" \| grep offset

echo "Closing crypt partition";
cryptsetup luksClose "$cryptedDevice"

echo "Resizing crypt containing partition";
cryptSizeInKiloByte=$[($newSizeInSectors+$offset)/2];
fdisk "$cryptDevice" < echo -e "p\nd\nn\np\n1\n\n${cryptSizeInKiloByte}K\np\nw"

Donnerstag, 28. April 2011

Schmecken lassen!

Heute möchte ich mich über eine Floskel aufregen. Die Floskel lautet schmecken lassen!" und hat sich in Jena ziemlich eingebürgert. Ich behaupte die Wurzel dieses Ausdrucks - zumindest in Jena - sind die meist unfreundlichen, Mitarbeiter der nichts desto trotz erfolgreichen Frittenbude Fritz Mitte in der Jenaer Wagnergasse*. Ich behaupte weiterhin, dass die Floskel dem Versuch entspringt die so genannte Berliner Schnauze zu imitieren.
Und in der Tat, auf den ersten Blick beim ersten Hören klingt "schmecken lassen!" wie die freundliche Aufforderung "lassen Sie es sich schmecken/lass es dir schmecken" oder sogar - zugegeben weit gegriffen - "Guten Appetit". Nur eben verkürzt durch die humorvolle Formulierung als dreist-frechen Befehl. Der Humor liegt ganz offensichtlich also im überraschend Unfreundlichen, obwohl alle wissen, es kann ja gar nicht unfreundlich gemeint sein, schließlich ist die Kundin ja Königin, einer sonst freundlichen Umgangsform.
Doch leider nutzt sich dieser Humor ab, nach dem zweiten, zehnten oder hundertsten Mal klingt "schmecken lassen!" eben nicht mehr wie eine Einladung mit Augenzwinkern, mit Humor verpackt à la, wir kennen uns, wir können so miteinander umgehen, sondern eher wie die unfreundliche Aufforderung sich nicht zu beschweren, getragen von der arroganten Annahme es sei gar nicht möglich etwas an dem Essen auszusetzen. Und was am Anfang unglaublich klingt - der Wirt oder die Servicekraft wäre unfreundlich - rückt durch die ständige Wiederholung durchaus in den Bereich des Möglichen.
Wir fassen zusammen: ich verstehe die ursprüngliche Intention der Floskel und kann sogar erklären warum sie (eigentlich) lustig ist. Dennoch wünsche ich mir, dass der inflationäre Gebrauch von jeder und jedem der mir Essen (oder Trinken) serviert eingestellt wird um die ursprünglich Intention, nämlich mit Freude, gut gelaunt und erfrischt durch einen Scherz zu Mahl zu schreiten, nicht zu zerstören.

* Ich mag zwar die Pommes bei Fritz Mitte ebenso wie die Currywurst, muss jedoch zugeben, dass mir das Essen dort inzwischen auf den Magen schlägt, es ist mir zu fettig. Und Abends/Nachts nach der Rose (oder wohl aufgrund meines gefühlten Alters eher ähnlichen Gelegenheiten) wenn ich also betrunken und mit ordentlichem Appetit derartige Bedenken beiseite wischend nach einer Alternative zu Döner suche hat Fritz Mitte leider schon lange geschlossen.

Donnerstag, 7. April 2011

Snipplets I

Sprache: Bash
Ziel: Auflisten der zuletzt geänderten PHP-Skript in einem Dateibaum mit Ausnahme gecachter vorberechneter Skripte im Ordner './cache/':

ls -l $(
  find -type f -iname '*.php' -printf '%C@ %p\n' | \
  sort -r | \
  grep -v ' ./cache/' | \
  head -5 | \
  cut -d ' ' -f '2-'
)

Auto-Taptetenwechsel

Eine der vielen Seiten die eine nette Sammlung von Hintergrundbildern anbieten habe ich mich spontan für http://interfacelift.com entschieden. Jeden Tag möchte ich auf meinen gnome2 Desktop ein neues Hintergrundbild sehen.
Hier das nötige Skript welches per crontab regelmäßig aufgerufen wird:

UPDATE: Jetzt auch im Repository zu finden


#!/bin/bash

# Ich speichere die letzte Aufrufnummer am Ende des Skripts
counter=$(tail -1 "$0");
# Mein default user agent für wget
user_agent="Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.133 Chrome/10.0.648.133 Safari/534.16";
# gnome2 speichert den Desktophintergrund in diesem "registry" key
gconf_key="/desktop/gnome/background/picture_filename"

# da nicht jede Nummer einem Hintergrundbild entspricht wird
# solange gesucht bis eine Nummber gefunden wird die passt
while [[ ! "$page_name" ]]; do
  counter=$[$counter+1];
  base_url="http://interfacelift.com/wallpaper/details/"$counter"/"
  forward=$(wget -q -O - $base_url | sed -n '/URL=/{s%^.*\(http://.*\.html\).*$%\1%;p}');
  page_name=$(echo $forward | sed 's%^.*/\(.*\)\.html.*$%\1%;s/_//;');
done;

die beste 4:3 Auflösung raussuchen
resolution=$(wget -q -O - -U "$user_agent" $forward | sed -n '/4:3/{n;s%^.*>\([0-9]*x[0-9]*\)<.*$%\1%;p}');
page_id=$(printf %05d $counter);
image_url="http://interfacelift.com/wallpaper/7yz4ma1/"$page_id"_"$page_name"_"$resolution".jpg";

# Bild mit temporärem Dateinamen als Hintergrundbild setzen
tmp_filename=$(tempfile);
wget -q -U "$user_agent" -O $tmp_filename --referer=$forward $image_url;
gconftool-2 -s "$gconf_key" --type "string" $tmp_filename

# neuen Coutner im Skript setzen
tmp_filename=$(tempfile);
(head -n -2 "$0"; echo; echo $counter) > $tmp_filename;
cat $tmp_filename > "$0";
rm $tmp_filename;
exit 0;

#Counter

0