Dec 07 2017

Running a limited number of scripts in parallel from Bash

Category: Computer,LinuxTuxevara @ 20:49

Imagine you have a text file with a single parameter for another script on each line, but you want to speed things up. Instead of writing an overly complicated wrapper script, as I did a few times in the past, you could just use xargs. It comes equipped with everything needed for this task. The following example assumes, that for each parameter in parameters.txt the command should be executed, with no more than 20 processes at the same time:

cat parameters.txt | xargs -n 1 -P 20

I guess it’s not hard to figure out that -P is the magic switch to allow multiple instances to be executed at the same time.


Tags: , , ,


Feb 02 2014

Migrating from KVM to LXC

Category: LinuxTuxevara @ 18:58

After I had to replace the mainboard of my HTPC, on which also two other virtual machines were running on KVM, the kvm_amd module crashed on every boot on the replacement hardware. Though KVM still worked, I don’t like to see any modules crashing on boot. I began asking myself whether I really need full KVM virtualization or if some kind of container based virtualization would do a good or even better job for me.

After reading into the pros and cons of different solutions, I concluded that LinuX Containers (LXC) should probably first choice for me. As the HTPC is running on Ubuntu 12.04, which also has Apparmor profiles that enhance the security of LXC’s weak security concept, I actually decided to continue with LXC.

I don’t want to explain how to install LXC, because this is already covered by many other sites. The only thing that I found which is not covered well enough, is the conversion of machines from KVM (or similar) to LXC. In my case the KVM guests where using RAW disk images, so I am exclusively focusing on converting such below.

Step 1 – Prepare the rootfs folder

First, the new target folder for the root file system of the LXC guest must be created.

mkdir -p /var/lib/lxc//rootfs

Step 2 – Mount the RAW image

Then the RAW disk image must be mounted to access the files. In my case the disk contained only one partition. Modify the mount command may be necessary.

kpartx -a
mount /dev/mapper/loop0p1 /mnt

Step 3 – Copy files to rootfs

Now that the content of the RAW image can be accessed, the files can be copied into the new rootfs folder created in step 1. I have been using the below command for years, to create more or less exact copies:

cd /mnt
find . -xdev | cpio -pmv /var/lib/lxc//rootfs

Step 4 – Modify the configuration

Now comes the trickiest part: The configuration of the new machine must be modified, otherwise it is unlikely that it will boot successfully. Most required changes can be extracted from the template files in /usr/lib/lxc/templates/, which are typically used for the creation of new machines. Below are the modification for Debian machines, which worked perfectly well for Debian Lenny (shame in me) and Squeeze.


cat < $rootfs/etc/inittab
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
1:2345:respawn:/sbin/getty 38400 console
c1:12345:respawn:/sbin/getty 38400 tty1 linux
c2:12345:respawn:/sbin/getty 38400 tty2 linux
c3:12345:respawn:/sbin/getty 38400 tty3 linux
c4:12345:respawn:/sbin/getty 38400 tty4 linux

mkdir -p $rootfs/selinux
echo 0 > $rootfs/selinux/enforce

mknod $rootfs/dev/tty1 c 4 1
mknod $rootfs/dev/tty2 c 4 2
mknod $rootfs/dev/tty3 c 4 3
mknod $rootfs/dev/tty4 c 4 4

# reconfigure some services

locale="$LANG $(echo $LANG | cut -d. -f2)"
chroot $rootfs echo "locales locales/default_environment_locale select $LANG" | chroot $rootfs sh -c "LANG=C debconf-set-selections"
chroot $rootfs echo "locales locales/default_environment_locale seen true" | chroot $rootfs sh -c "LANG=C debconf-set-selections"
chroot $rootfs echo "locales locales/locales_to_be_generated seen true" | chroot $rootfs sh -c "LANG=C debconf-set-selections"
chroot $rootfs sed -i -e "0,/^[# ]*$locale *$/ s/^[# ]*$locale *$/$locale/" /etc/locale.gen
chroot $rootfs sh -c "LANG=C dpkg-reconfigure locales -f noninteractive"

# remove pointless services in a container
chroot $rootfs /usr/sbin/update-rc.d -f remove # S
chroot $rootfs /usr/sbin/update-rc.d stop 09 S .

chroot $rootfs /usr/sbin/update-rc.d -f umountfs remove # 0 6
chroot $rootfs /usr/sbin/update-rc.d umountfs start 09 0 6 .

chroot $rootfs /usr/sbin/update-rc.d -f umountroot remove # 0 6
chroot $rootfs /usr/sbin/update-rc.d umountroot start 10 0 6 .

# The following initscripts don't provide an empty start or stop block.
# To prevent them being enabled on upgrades, we leave a start link on
# runlevel 3.
chroot $rootfs /usr/sbin/update-rc.d -f remove # S 0 6
chroot $rootfs /usr/sbin/update-rc.d start 10 3 .

chroot $rootfs /usr/sbin/update-rc.d -f remove # S
chroot $rootfs /usr/sbin/update-rc.d hwclockfirst start 08 3 .

chroot $rootfs /usr/sbin/update-rc.d -f module-init-tools remove # S
chroot $rootfs /usr/sbin/update-rc.d module-init-tools start 10 3 .

rm $rootfs/etc/udev/rules.d/70-persistent-net.rules

Step 5 – Create LXC config

Finally we have to create a LXC configuration file for the new machine. Lazy as I am, I have copied an existing config file into /var/lib/lxc// and modified the paths and network configuration accordingly.

After that the machine can be started with

lxc-start -n

Keep in mind that you won’t be able to detach from that console again. But to debug boot problems it is essential to not launch the machine in background mode (-d).

Tags: , , ,


Nov 11 2013

Open Rhein Ruhr 2013

Category: Allgemein,Computer,LinuxTuxevara @ 14:50

Wieder ist ein spannendes Open Rhein Ruhr Wochenende vorueber. Fuer mich war es diesmal etwas Besonderes, da ich nicht als Helfer sondern als Orga dabei und auf der Veranstaltung fuer das Netzwerk verantwortlich war. Ausser zwei nicht so ganz sauberen DSL-Leitungen gab es jedoch keine groesseren Probleme, weshalb mir genug Zeit blieb mich unter die Besucher zu mischen und interessante Gespraeche an den Staenden zu fuehren.

ORR Social Event

Auch das Social Event war wie in der Vergangenheit eine tolle Sache, nicht zuletzt wegen der Location.

Was mich aber wirklich jedesmal auf solchen Linux und Open Source Events begeistert, ist der Umgang miteinander. Es fuehlt sich eigentlich immer so an, ob als ob es kein oben oder unten gibt, kein gut oder schlecht gibt und jeder ist in irgendeiner Weise Anbieter und Konsument zugleich. Alle packen mit an wo Haende gebraucht werden. Ich hoffe, dass mich mein Eindruck nicht taeuscht und dass all diese Menschen im Alltag genau so einen offenen Umgang miteinander pflegen.

Mein besonderer Dank gilt natuerlich allen Helfern und vor allem den Freifunkern, welche durch Bereitstellen von weiterer Hardware sowohl das ORR eigene WLAN verbessert haben, als auch zusaetzlich noch Ihr eigenes Freifunk Mesh bereitgestellt haben.

Bis zum naechsten Jahr,wenn es wieder heisst: “Ein Pott voll Software”.

Tags: , ,


Jul 04 2013

NRPE on Centos or RHEL6

Category: LinuxTuxevara @ 16:52

If you are running NRPE on Centos or RHEL 6 and wonder why check commands that are prepended with a sudo command always fail: remove the “requiretty” option from your /etc/sudoers and everything will work fine again. It’s a shame that it takes strace to get the initial error message our of nrpe-server.

Tags: , , , ,


Aug 25 2012

FrOSCon Day 1 – A quick summary

Category: UncategorizedTuxevara @ 16:42

For the seventh time ever the FrOSCon opened its doors this morning. It is my third visit now and it is really great to see that this event seems to become more and more international. Lots of lectures are given in English and in the hallway it seems to be the preferred language this weekend. So it wasn’t surprising that lunch became a meet and greet with Selena who is going to give the keynote tomorrow and who only travelled from Portland just for this event. Looks like my Tuxevara t-shirt seems to be useful if you want others to start a conversation with you 😉

All lectures I visited were pretty good and on an intermediate level of required knowledge. I am expecting that all other I will listen to today will be on the same level. So my resume so far is, that’s it was once again really worth coming here.

Now I’m looking forward to the social event tonight and of cause tomorrow.

Tags: , , , , ,


Mar 28 2012

Heise Open: “LiMux: Billiger und robuster als Windows”

Category: Linux,PolitikTuxevara @ 20:27

Wie Heise Open heute in seinem Artikel schreibt, hat OberbĂŒrgermeister Ude in MĂŒnchen, festgestellt, dass es nach derzeitigem Verlauf des Projekts darauf hinaus lĂ€uft, dass die Kosten vom Linux-Einsatz dauerhaft geringer sind als Windows und auch noch deutlich robustere Systeme hervorbringt.

Selbst mich als Linux-AnhĂ€nger ĂŒberrascht diese Aussage eines AmtstrĂ€gers doch sehr. Hoffen wir mal, dass es so weiter geht mit LiMux und es nicht im gleichen Debakel endet wir im AuswĂ€rtigen Amt.

Tags: , , , ,


Mar 18 2012

Das waren die Chemnitzer Linux Tage 2012

Category: Allgemein,LinuxTuxevara @ 20:49

Und schon wieder ist ein Wochenende Chemnitzer Linux Tage vorĂŒber und wir sind auf dem RĂŒckweg. Zeit ein kleines Resume zu verfassen.

Die Organisation des gesamten Events ist wie immer perfekt gewesen. Viele fleißige und freundliche Helfer an allen Orten, gute Beschilderung und ĂŒbersichtliche Infoscreens. Das Vortragsprogramm war wie immer bunt gemischt und so war fĂŒr jeden was dabei. Leider hat sich auch mal wieder gezeigt, dass im Programm sehr interessant klingende VortrĂ€ge auch schon mal eher weniger spannend sind und hinter denn Erwartungen zurĂŒck blieben. Wer allerdings immer in allen Belangen – inhaltlich wie unterhaltsam – klasse VortrĂ€ge abliefern sind Peer Heinlein und Martin Loschwitz. Der Vortrag zu Strace war auch recht interessant und hat einem noch ein paar mehr HintergrĂŒnde zu diesem alltĂ€glichen Helferlein vermittelt. Allerdings hĂ€tten eine Stunde auch gereicht. Leider ein wenig ohne roten Faden war der Django Vortrag. Das war wie mit Dartpfeile auf die vier Tutorials geschossen.

Das Social Event am Samstag Abend war in allen Belangen zwiespÀltig. Zum einen waren die Besucher auf zwei RÀume verteilt, zum anderen war vor allem im Diskoraum die Musik nur zur HÀlfte ertrÀglich, was man auch daran festmachen konnte, dass die TanzflÀche nur bei einem DJ Beachtung gefunden hat. Im Nebenraum gab es die Möglichkeit auf der Retro-Party alte Konsolen und PC spiele noch einmal zu erleben. Kindheitserinnerungen wurden da sicher bei den Allermeisten noch einmal geweckt.

Auf jeden Fall steht fest, dass wir (Turrican, Killefiz, Rudi und ich) auch nÀchstes Jahr wieder dabei sein werden.

Tags: , ,


Nov 09 2011

Looking for a perfect Linux desktop system?

Category: Computer,Hardware,LinuxTuxevara @ 21:40

I think I just found it: Installed Ubuntu 10.04 on an Acer Aspire X3910 PT.SEDE2.240 and must say that I am really suprised how well it works. Everything was detected automatically. The whole machine has a very small form factor and is very silent but on the other hand very powerful with its dual-core Intel E6700 CPU. Unfortunately it is not mine 😉

Tags: , ,


Jan 23 2011

GRUB Probleme mit unter GRML erstelltem Software RAID

Category: LinuxTuxevara @ 18:31

Im Rahmen des des FTPC Projekts, gab es die eigentlich recht triviale Aufgabe zu erfĂŒllen, das bereits laufende Installationsserver-System von einem alten Laptop auf einen Server im 19″-GehĂ€use samt Software RAID-1 zu ĂŒbertragen. Aus der Vergangenheit wusste ich, dass das mit GRML eigentlich kein Problem sein sollte. Allerdings hat sich seit dem letzten Debian Stable, was die Basis des Installationsservers darstellt, wieder einiges verĂ€ndert. Man konnte ohne Probleme das Software RAID erstellen und die Daten per Rsync in das entspreche Zielverzeichnis ĂŒbertragen.

Soweit alles wie immer. Aber dann weigerte GRUB sich installieren zu lassen. Egal was man versuchte, es endete immer in der Meldung “bad file or directory type”. Leider fand sich dazu rein gar Nichts, was auf die Ursache des Problems hingewiesen hĂ€tte.

Ich erinnerte mich dann daran, dass ich irgendwann mal das Problem hatte, dass sich die Standard-Inode-Size zwischenzeitlich mal von 128 auf 256 geĂ€ndert hat, was auch dazu gefĂŒhrt hatte, das man GRUB zwar installieren konnte aber ein Start nicht möglich war.

Also machte ich mich auf die Suche nach einem Ă€hnlichen Unterschied und wurde bei mdadm fĂŒndig.

Erst als ich das Software RAID mit

mdadm create /dev/md0 -e 0.90 --raid-devices=2 --level=1 /dev/sda1 /dev/sdb1

,also zwingend mit dem alten Format der Metadaten, erstellt habe, konnte man GRUB auch erfolgreich installieren.

Tags: , , , ,


Jan 15 2011

Nettes LDAP Werkzeug fĂŒr die Shell

Category: Computer,LinuxTuxevara @ 23:07

Soeben eher zufÀllig bei einem aptitude search ldap auf das Paket shelldap gestossen. Damit kann mal durch einen LDAP Baum wie durch ein Dateisystem navigieren, EintrÀge kopieren und verschieben, bearbeiten, ausgeben und so weiter. Das Programm ist auf jeden Fall mal ein Blick wert. Ach ja und das Killerargument warum man es einsetzen sollte:

[..] and it’s fun to say. Shelldap! Shelldap! Shelldap!

Webseite von Shelldap:

Tags: , , ,


Next Page »