Anzahl der Dateien in einem Ordner unter Linux bestimmen

Möchte man wissen wir viele Dateien sich in einem Ordner unter Linux befinden, so kann man dies leicht durch eine Kombination der Befehle „find“ und „wc“ bewerkstelligen:

find /home/seeseekey/manyfiles/ -type f | wc -l

Der „find“-Befehl listet dabei alle Dateien in dem Ordner auf, während „wc“ (word count) die ausgegebenen Zeilen zählt und man somit die Anzahl der Dateien ermittelt.

rsync Ausgaben interpretieren

Wenn man rsync für bestimmte Aufgaben wie das sichern von Daten nutzt, so sollten einem folgende Zeilen bekannt vorkommen:

>f++++++++++ share/Videos/Animated.mp4
>f++++++++++ share/Videos/FullAnimated.mp4
>f++++++++++ share/Videos/Duplex.mp4

Nun sind diese Ausgaben nicht zufällig, sondern folgen einem Schema. Das erste Zeichen gibt dem Nutzer Informationen darüber was mit der Datei passiert ist. Bei einem > wurde die Datei vom entfernten Server zum lokalen Rechner geschickt. Wenn der Pfeil in die andere Richtung zeigt (<) wurden die Datei vom lokalen Rechner zum entfernten Server geschickt. Neben den beiden Pfeilen gibt es noch andere Zeichen wie z.B. den Punkt welcher anzeigt das die Datei nicht geändert wurde und somit auch kein erneuter Transfer notwendig wurde.

Das Zeichen danach gibt an um welche Art von Datei es sich handelt. Das kleine f steht dabei für eine Datei, das d für ein Verzeichnis, das L für einen symbolischen Link, das große D für ein Gerät (Device) und S steht für eine spezielle Datei wie z.B. ein Socket. Anschließend folgen noch einige weitere Spalten, welche für bestimmte Attributsänderungen stehen, so z.B. dafür ob sich die ACL-Informationen für die Datei geändert haben. Genaueres dazu kann man in der Samba-Dokumentation im Abschnitt „–itemize-changes“ erfahren.

Betriebssysteme auf einem USB-Stick aufspielen

Möchte man ein Betriebssystem auf einem USB-Stick aufspielen, so kann man dies je nach Betriebssystem mit unterschiedlichen Mitteln wie z.B. „dd“ bewerkstelligen. Mit UNetbootin gibt es ein Werkzeug für Linux, Mac OS X und Windows, mit welchem sich dies über eine grafische Oberfläche erledigen lässt.

Das Dialogfenster von UNetbootin

Das Dialogfenster von UNetbootin

Neben der Möglichkeit eine ISO-Datei auf einen USB-Stick zu spielen, ist es auch möglich aus einer Liste von Systemen zu wählen. Das gewählte System wird heruntergeladen und anschließend auf dem USB-Stick installiert. Bei UNetbootin handelt es sich um freie Software welche unter GPL in der Version 2 und höher lizenziert ist. Es kann auf der offiziellen Seite heruntergeladen werden.

Freier ELSTER Client

Beim offiziellen Client für ELSTER handelt es sich um Freeware. Möchte man sich darauf nicht verlassen und stattdessen freie Software nutzen, so sollte man sich die Software Geierlein anschauen.

Der geöffnete Client

Der geöffnete Client

Dabei handelt es sich um einen freien Client für ELSTER. Der Client selbst ist dabei in Javascript geschrieben und unter der APGLv3 verfügbar. Geierlein ist der Nachfolger von Taxbird. Neben der offiziellen Seite ist auch der Quellcode auf GitHub zu finden.

Weitere Informationen gibt es unter:
https://de.wikipedia.org/wiki/ELSTER

Probleme beim MySQL Dump mit nicht existierenden Nutzern

Unter Linux kann man mittels

mysqldump -u root -p<Passwort> --all-databases --result-file=dump.sql

alle MySQL Datenbanken in eine SQL Datei sichern. Allerdings kann es unter Umständen passieren, das man folgende Meldung bekommt:

mysqldump: Got error: 1449: The user specified as a definer ('u123456789'@'%') does not exist when using LOCK TABLES

Ein Workarround wäre es das ganze mit dem Parameter „–lock-tables=false“ aufzurufen:

mysqldump -u root -p<Passwort> --all-databases --result-file=dump.sql

Allerdings behandelt dies nur die Symptome. Um das Problem zu lösen wird im ersten Schritt der fehlende Nutzer angelegt.

GRANT ALL ON *.* TO 'u123456789'@'%' IDENTIFIED BY 'passwort';

Meist ist ein View oder eine Storaged Procedure in welcher der nicht existierende Nutzer definiert wurde, wie in diesem Beispiel:

ALTER ALGORITHM=UNDEFINED DEFINER=`u123456789`@`%` SQL SECURITY DEFINER VIEW `mana_v_online_chars` AS select `l`.`char_id` AS `char_id`,`l`.`login_date` AS `login_date`,`c`.`user_id` AS `user_id`,`c`.`name` AS `name`,`c`.`gender` AS `gender`,`c`.`level` AS `level`,`c`.`map_id` AS `map_id` from (`mana_online_list` `l` join `mana_characters` `c` on((`l`.`char_id` = `c`.`id`)))

Nachdem der View korrigiert wurde, in dem dort ein gültiger Nutzer angegeben wurde, kann der temporär angelegte Nutzer entfernt werden.