The Gantt-utility is just a tiny tool which generates Gantt-Charts based on simple text-files.

Currently there are no releases but soon they will be published on this site.

apt-file – Suche nach Programmen innerhalb von APT/Debian-Repositories

Kürzlich bemerkte ich auf einem frisch installierten Server das es dort keinen nslookup Befehl mehr gab. Glücklicherweise gibt es unter Debian-ähnlichen Distributionen den Befehl apt-file.

Dies ermöglicht die Suche nach Anwendungen, die noch nicht installiert sind, aber im Prinzip im APT-Repository verfügbar sind. Der Befehl

apt-file search nslookup

hat hier schnell Licht ins Dunkel gebracht und folgenden Output geliefert:

bash-completion: /usr/share/bash-completion/completions/nslookup
bind9-doc: /usr/share/doc/bind9-doc/arm/man.nslookup.html
dnsutils: /usr/bin/nslookup
dnsutils: /usr/share/man/man1/nslookup.1.gz
exim4-doc-html: /usr/share/doc/exim4-doc-html/spec_html/ch-the_dnslookup_router.html
fpc-source-3.0.4: /usr/share/fpcsrc/3.0.4/packages/fcl-net/examples/cnslookup.pp
libnet-nslookup-perl: /usr/share/doc/libnet-nslookup-perl/changelog.Debian.gz
libnet-nslookup-perl: /usr/share/doc/libnet-nslookup-perl/copyright
libnet-nslookup-perl: /usr/share/lintian/overrides/libnet-nslookup-perl
libxpa-dev: /usr/share/man/man3/xpanslookup.3.gz

Somit war klar, dass das Paket dnsutils nachträglich installiert werden musste. Ein Aufruf von

apt-get install dnsutils

genügte und das Tool nslookup war nun wieder auf meinem Server verfügbar.

Falls apt-file selbst nicht installiert ist so kann dies mit folgendem Befehl installiert werden:

apt-get install apt-file

Es ist wichtig das danach der Cache initialisiert wird. Dies passiert mit dem Befehl

apt-file update

Linux-Administration kann so einfach sein ...

Tschüss Firefox

Gibt es eigentlich einen schlechteren Webbrowser als Firefox-Mozilla? Ich hätte kaum gedacht, dass es nicht noch schlimmer kommen könnte und Firefox legt mit der nächsten Version bereits einen drauf.

Einerseits sind die hohen Versionsnummern ein Zeichen für eine krumme Entwicklung und andererseits bevormundet der Browser Sie unter dem Vorwand der Sicherheit, wo er nur kann.

Abgesehen von Speicherverbrauch und Profilüberlastung hat es zahlreiche Fehler, obwohl zugegeben werden muss, dass es unter Microsoft Windows noch schlechter läuft als unter Linux.

Jedenfalls habe ich ihn jetzt beerdigt. Ich bin auf keinen Browser fixiert, aber Firefox kommt nicht mehr in mein Haus.

Freshcode-Club – Your preferred software-repository

Can anyone remember Freshmeat aka Freecode? This was the ultimate site to get OpenSource or Linux software.

Unfortunately, the project was stopped in 2014 and has been standing still ever since. The state at that time was frozen and can still be reached.

Alternatively, however, the Freshcode Club project has developed, which is reminiscent of the old days of Freshmeat with a similar design. See also

Unfortunately, I only discovered the project now, although it has been available on the internet for some time.

Prevent password query for SSH access on client side

Especially with automated scripts which establish SSH connections to external systems, the request for a password within the script is undesirable or leads to the script being blocked.

It is possible to simulate such password entries with the expect tool, but this is anything but secure. The best way is authentication via RSA keys, which must be entered as a public key in the target system in order to enable password-free access.

If you administrate many systems and have forgotten to import a public key into a target system, you end up with the problem of the blocked script again because a password query is initiated as a failover.

To prevent this, the -o BatchMode=yes parameter is simply passed to the SSH client. It is generally recommended to use this parameter as soon as ssh appears in a script. As a rule, however, it is not considered and prevents many a system from running automated processes.

A typical command-line will look like this:

ssh -o BatchMode=yes

If you use SSH indirectly via Rsync, this parameter can be used as follows:

rsync -av -e "ssh -o BatchMode=yes" /dst1

Set up Steam under Debian without an installer

First of all: When setting up Steam, I act as user tester. Any other user can be used instead of tester. However, all path information in this documentation must then also be changed.

First, download the official Steam installer from their web portal. A file steam.deb is then available in the downloads folder.

If you unpack this Debian package you will find the files that are necessary under the directory /CONTENTS (unpacking with the Midnight Commander is very simple by selecting steam.deb and pressing Enter)

  • /usr/bin/steam
  • /usr/bin/steamdeps
  • /usr/lib/steam/bootstraplinux_ubuntu12_32.tar.xz

The last file can be named differently under certain circumstances. Below /usr/lib/steam (within steam.deb!) There should be only one file.

All three files are now e.g. copied to /home/tester/steam/bin (This directory must be created beforehand!) Then the following steps are carried out as user root:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libgl1-mesa-dri:i386
sudo apt-get install libgl1-mesa-glx:i386

Now change to the directory /home/tester/steam/bin and call the file steam:

cd /home/tester/steam/bin

If packages are still missing, they are now displayed in a separate window (missing packages are installed as above, the package names displayed by Steam can be adopted 1: 1) Otherwise, the execution of the Steam application begins, which usually starts with the Update of own binaries begins. Ultimately, the usual Steam window appears where games can be started and installed.

Addendum: The way described above does not create any desktop icons and otherwise Steam is NOT integrated into the existing desktop environment via GUI but has to be started manually as stated above.

Generate spectrograms with arecord, sox and ffmpeg/avconv

Create a spectrogram (image)

The following command creates a WAV file using Alsa (Device 2.0). In this case, Sox is additionally piped, which is completely unnecessary here, however, Sox could still add various filters to the resulting test.wav change:

arecord -D hw:2,0 -r 32000 -f S16_LE -c 1 -t wav | sox -t wav -c 1 -L -b 16 -r 32000 - test.wav

Using the file test.wav that has just been created, a spectrogram is now generated:

sox test.wav -n spectrogram -o image.png

The file image.png then looks something like this (in this case a simple whistle)

Similar can also be created using avconv:

avconv -i test.avi -lavfi showspectrumpic=s=hd480:legend=0,format=yuv420p out.png

Create a spectrogram (Video)

The following instruction creates a spectrogram from a video test.avi. This is saved as a video under the name out.avi.

avconv -i test.avi -filter_complex "[0:a]showspectrum=s=854x480:mode=combined:slide=scroll:saturation=0.2:scale=log,format=yuv420p[v]" -map "[v]" -map 0:a -b:v 700k -b:a 360k out.mp4

Instead of avconvffmpeg could also have been used. The Debian version does not currently support all parameters here.


A spectrogram of a video can also be created with mplayer or with the mplayer/sox combination.

First a WAV file is created using MPlayer:

mplayer test.mp4 -ao pcm:file=/dev/stdout -vo null > test.wav

This is followed by the creation of the spectrogram:

sox test.wav -n spectrogram -o test.png

The graphics created in this way can be compared directly. With some (apparently identical) WAV files this can be difficult.

For this reason, the display of a spectrogram diff is recommended.

First a WAV diff is created:

sox -m -v 1 source1.wav -v -1 source2.wav diff.wav

Then the spectrogram diff is created:

sox diff.wav -n spectrogram -o diff.png

Set the exif-date with exiftool

exiftool -AllDates="2017:03:11 00:00:00" test.jpg


exiftool -AllDates+="3:0:0 0" *.jpg

incorrect Exif data can also be corrected (in this case the year is increased by 3)

Transferring files with Netcat/nc

Individual files can also be transferred using netcat. To do this, the following instructions must be used on the transmitter and receiver:

On the receiver:

nc -l -p 8888 -w 5 > ziel < /dev/null

At the sender:

nc servername 8888 < quelle

Explanation: The recipient starts a server service based on the first parts, which reacts to requests on TCP port 8888. With the instruction > ziel the content of received data is written to a file name ziel.

The file transfer is started on the transmitter by entering the second instruction. Here a connection with the server servername via port 8888 is initiated and the file quelle is transferred.

The file is transmitted unencrypted and uncompressed. Using tools like gzip and openssl this could be implemented transparently.

Convert images to a single video

There are several approaches here. The order of the images is problematic. The easiest way would be by:

cat *.jpg | ffmpeg -f image2pipe -r 25 -vcodec mjpeg -i - test.mp4

A warning is issued here because the pipe is aborted and ffmpeg does not seem to be able to recognize this.

Another method would be via image names which contain a sequential counter in the file name. If this is not the case, the file names can be changed as follows:


for i in *.jpg; do
        NEW_FILENAME=$(printf "%04d.jpg" "$COUNTER")
        mv -i -- "$i" "$NEW_FILENAME"
        let COUNTER=COUNTER+1

The video can be created using:

ffmpeg -start_number 1 -i %04d.jpg -vcodec mpeg4 test.avi

In this case, the 4 fixed numerical digits on the left are filled in with 0. If the number is higher, the mask %04d must be changed accordingly.