August, 2012

Bash paralelisiren

Donnerstag, August 16th, 2012

Gehen wir von folgenden Szenario aus. Wir wollen eine Funktion in Bash in den Hintergrund schreibe um den Ablauf zu Parallelisieren. In diesem Beispiel wird lediglich ein sleep ausgeführt.

#!/bin/bash

function background ()
{
  #do somsing
  sleep $1
}

for i in {1..100}; do
  background $i &
done

Problem: Wir wollen aber maximal nur 10 Prozesse gleichzeitig laufen lassen. Dafür habe ich eine Funktion waiting geschrieben die solange wartet bis die Anzahl des übergebenen wertes erreicht ist. Für das Zählen habe ich Dateien verwendet da wenn man Variablen übergeben würde diese nicht in der for schleife zur Verfügung stehen würden.

#!/bin/bash

tmpd=`mktemp -d`
function waiting() {
  while true; do
    if [ `ls $tmpd | wc -l` -le "$1" ]; then
      break
    fi
    sleep .5;
  done
}

function background () {
  touch $tmpd/$1
  #do somsing
  sleep $1
  rm $tmpd/$1
}

for i in {1..100}; do
  background $i &
  waiting 10
done

waiting 0
rm -r $tmpd

Bildschirm Helligkeit

Mittwoch, August 8th, 2012

Was machen wenn auf einem neuem Tablet wo ich gerade eben Windows runter geschmissen und Ubuntu installiert habe die Helligkeit auf einmal ganz dunkel ist.

echo 50 | sudo tee /sys/class/backlight/acpi_video0/brightness

Zur Info 50 ist eine Prozent Angabe 100 geht also auch.

Bilder wiederherstellen

Mittwoch, August 8th, 2012

Heute habe ich gelöschte Bilder auf meiner CF Karte wiederhergestellt. Das ist ganz einfach zuerst habe ich aber zur Sicherheit ein dd von der CF Karte gemacht. Dann:

sudo dd if=/dev/sdb of=~/cf.img bs=1M
sudo chown $USERNAME:$USERNAME cf.img
photorec cf.img

nm-applet verschwunden

Mittwoch, August 1st, 2012

Seit längeren war auf meinem Laptop das nm-applet verschwunden, wenn es nicht mit einem Netzwerk verbinden konnte. Dies hieß aber auch das ich mich nicht mehr mit unbekannten WLANs oder gar HSDPA Verbindungen aufbauen. Ein neustarten des applet hat auch nix geholfen. Nun habe ich in „Startprogramme“ folgendes eingetragen.

/bin/bash -c "qdbus --system org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.sleep ; sleep 1 ; qdbus --system org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.wake"