Category: Linux

HowTo: Textersetzung in mehreren Dateien mit Perl (preg) unter Windows und Linux

Neulich stellte sich mir folgendes Problem:
Ich hatte viele Dateien, in denen ich Text ersetzen wollte. Mit einem normalen Editor ist dies schlecht möglich. Abhilfe schafft der Perl Interpreter:

1
2
3
4
5
6
7
8
perl -pi -w -e 's/search/replace/g;' *.html
 
    -e Argument ausführen (execute)
    -i "in-place" editieren
    -w Warnungen ausgeben
    -p "loop"
 
siehe auch perl -h

Beispiel Datum 1

Es soll das Datum von 2008 auf 2009 in allen html-Dateien im aktuellen Verzeichnis aktualisiert werden:

1
perl -pi -w -e 's/2008/2009/g;' *.html

Beispiel Datum 2

Es soll das Datum von 200x auf 2009 in allen html-Dateien im aktuellen Verzeichnis aktualisiert werden:

1
perl -pi -w -e 's/200[0-8]/2009/g;' *.html

Beispiel: Verzeichnisse rekursiv durchsuchen (nur Linux)

1
2
3
4
5
find * | grep -E "\.html$" | xargs perl -pi -w -e 's/search/replace/g;'
 
    find * gibt alle Dateien und Verzeichnisse aus
    grep -E "\.html$" selektiert nur Dateinamen, die auf .html enden
    xargs gibt die Dateinamen als Parameter an Perl weiter

HowTo: Proftpd-lenny unter debian etch 4.0 / Filezilla ECONNABORTED beheben

Dieser Artikel richtet sich an “debian etch 4.0″-Administratoren, die Proftpd aus den Paketquellen installiert haben und folgendes Problem in Filezilla haben:

Status: Server did not properly shut down TLS connection
Error: Could not read from transfer socket: ECONNABORTED – Connection aborted

Wie im Filezilla Forum zu lesen ist:

ECONNABORTED: It’s the server’s fault!

leider hilft das nicht wirklich weiter.

Die Lösung ist ganz einfach: Proftpd aus den lenny Paketquellen laden und installieren. Dieses HowTo hilft bei der Erstellung eines Proftpd-Paketes.

Vorbereiten des Systems

Für einige der nachfolgenden Befehle muss man root sein. Am besten man wird es jetzt schon.

Zum Bauen von Debian-Paketen sind einige Pakete erforderlich.

1
aptitude install devscripts build-essential fakeroot

Laden und Vorbereiten der Sourcen

Die Sourcen gibt es unter packages.debian.org/lenny/proftpd

1
2
wget http://security.debian.org/debian-security/pool/updates/main/p/proftpd-dfsg/proftpd-dfsg_1.3.1.orig.tar.gz
wget http://security.debian.org/debian-security/pool/updates/main/p/proftpd-dfsg/proftpd-dfsg_1.3.1-17lenny4.diff.gz

Auspacken des tar.gz Archives:

1
tar -xzf proftpd-dfsg_1.3.1.orig.tar.gz

Nun werden die debian-spezifischen Patches angewendet

1
2
cd cd proftpd-dfsg-1.3.1/
zcat ../proftpd-dfsg_1.3.1-17lenny4.diff.gz | patch -p1

Bauen der Pakete

1. Versuch mit debuild

1
debuild

Dieser 1. Versuch wird aller Voraussicht nach fehlschlagen, da andere Pakete fehlen, um Proftpd zu bauen. Die Fehlermeldung ist allerdings hilfreich und verrät welche Pakete noch zu installieren sind. Diese sollten nun nacheinander installiert werden. Zwischendurch immer wieder debuild probieren. Die Liste der fehlenden Pakete sollte mit jedem installierten Paket kleiner werden.
Schließlich startet debuild das Erstellen der Pakete. Dies kann einige Zeit dauern. Nicht die Geduld verlieren.

Es kann sein, dass debuild einige Fehler am Ende ausgibt, dies soll uns aber nicht weiter stören. Wenn alles geklappt hat sollten am Ende folgende Dateien vorhanden sein (je nach System kann die Liste abweichen)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd ..
ls -al
 
-rw-r--r--  1 root root  195024 2009-11-12 17:19 proftpd_1.3.1-17lenny4_all.deb
-rw-r--r--  1 root root  696556 2009-11-12 17:19 proftpd-basic_1.3.1-17lenny4_i386.deb
drwxr-sr-x 13 root root    4096 2009-11-12 17:19 proftpd-dfsg-1.3.1
-rw-r--r--  1 root root  102934 2009-11-12 17:16 proftpd-dfsg_1.3.1-17lenny4.diff.gz
-rw-r--r--  1 root root     653 2009-11-12 17:16 proftpd-dfsg_1.3.1-17lenny4.dsc
-rw-r--r--  1 root root       0 2009-11-12 17:19 proftpd-dfsg_1.3.1-17lenny4.dsc.asc
-rw-r--r--  1 root root  124074 2009-11-12 17:19 proftpd-dfsg_1.3.1-17lenny4_i386.build
-rw-r--r--  1 root root    1700 2009-11-12 17:19 proftpd-dfsg_1.3.1-17lenny4_i386.changes
-rw-r--r--  1 root root 2662056 2009-02-25 12:55 proftpd-dfsg_1.3.1.orig.tar.gz
-rw-r--r--  1 root root 1254386 2009-11-12 17:19 proftpd-doc_1.3.1-17lenny4_all.deb
-rw-r--r--  1 root root  214058 2009-11-12 17:19 proftpd-mod-ldap_1.3.1-17lenny4_i386.deb
-rw-r--r--  1 root root  203592 2009-11-12 17:19 proftpd-mod-mysql_1.3.1-17lenny4_i386.deb
-rw-r--r--  1 root root  203562 2009-11-12 17:19 proftpd-mod-pgsql_1.3.1-17lenny4_i386.deb

Installieren von Proftpd

Bevor der neue Proftpd installiert wird sollte der alte entfernt werden

1
aptitude remove proftpd

Schließlich kann der neue Proftpd installiert werden

1
dpkg -i *.deb

Nun sollte der selbst gebaute Proftpd seinen Dienst verrichten.

Fragen und Anregungen sind in den Kommentaren gerne willkommen!

Links
Rebuilding Debian packages debian-administration.org/articles/20
Lenny Proftpd Quellen packages.debian.org/lenny/proftpd

Dank
Vielen Dank an Matthias für das “Mini-Papier-HowTo”

HowTo: Subversion Server / svnserve unter debian

subversion_logo_hor-468x64

Es wird die Einrichtung eines Subversion Servers und eines Repositories unter Debian behandelt.

Dieses HowTo setzt voraus, dass man sich mit TortoiseSVN oder einem anderen SVN-Client bereits auskennt.
Weiterlesen »

Debian: Netzwerkkarte austauschen – aus eth0 wird eth1

debian-openlogo-nd-50Wenn man in Debian die Netzwerkkarte oder gleich das ganze Mainboard samt onboard Netzwerk austauscht wird man feststellen, dass das Netzwerk nach dem Tausch der Hardware nicht mehr funktioniert, auch wenn die Netzwerkkarten gleich sind.

Das Problem ist, dass die Netzwerkkarten zwar gleich, aber nicht identisch sind. Jedes Netzwerkgerät hat eine eindeutige MAC-Adresse. Debian erkennt die neue Netzwerkkarte unter der neuen MAC-Adresse und legt einen neuen Netzwerkadapter (eth1) an.

Mit einem

1
grep -R eth1 /etc

ist die verantwortliche Datei schnell gefunden: /etc/udev/rules.d/z25_persistent-net.rules

nach dem Tausch der Netzwerkhardware sollte die Datei ungefähr so aussehen:

1
2
3
4
5
# PCI device ...
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"
 
# PCI device ...
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="xx:xx:xx:xx:xx:xx", NAME="eth1"

Nun einfach das 1. Gerät auskommentieren oder löschen und beim 2. “eth0″ als Namen eintragen:

1
2
3
4
5
6
# auskommentiert: alte Netzwerkkarte!!!
# PCI device ...
#SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"
 
# PCI device ...
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"

Weitere Änderungen sind nicht notwendig und nach einem Neustart des Systems funktioniert alles wieder wie gewohnt.

Debian: Umlaute auf der Konsole reparieren

debian-openlogo-nd-50Auf einem frisch installierten deutschen Debian hat man immer ein Problem: Alle Umlaute werden auf der Konsole falsch dargestellt.

Die Lösung ist dabei eigentlich ganz einfach: “dpkg-reconfigure locales” ausführen und im folgenden Dialog “de_DE@euro ISO-8859-15″ auswähren. Im 2. Dialog dann “de_DE@euro” als Standard-Standorteinstellung wählen. Die Ausgabe sollte dann wie folgt aussehen:

1
2
3
4
5
6
serv:~# dpkg-reconfigure locales
Generating locales (this might take a while)...
  de_DE.UTF-8... done
  de_DE.ISO-8859-15@euro... done
Generation complete.
serv:~#

Nun werden alle Umlaute korrekt dargestellt.

Man fragt sich, warum “de_DE@euro ISO-8859-15″ nicht als Standard gewählt ist…

HowTo: Programme unter Linux ausführen, auf Windows anzeigen

Zutaten

Benötigte Zeit: 15 Minuten

Benötigtes Fachwissen: gering – mittel, wenn auf dem Linux Server schon ein ssh-Server installiert ist.

Anleitung (unter Windows)

  1. Installiere Xming
  2. Speichere die putty.exe irgendwo
  3. Starte Xming
  4. Starte putty
  5. Trage bei “Host Name” den Hostnamen oder die IP des Linux Servers ein, klicke auf “Open”
  6. Aktiviere unter Connection -> SSH -> X11 das “X11 forwarding”
  7. Logge Dich mit Benutzernamen und Passwort ein
  8. Starte ein Programm (z.B. xclock)

Nützliche Programme

  • kicker: “Linux-Taskleiste”
  • update-manager (als root): unter Debian grafische Oberfläche für “apt-get update” und “apt-get upgrade”
  • konqueror: Dateimanager

Hinweise

  • Tippe ein & hinter das Programm, damit das laufende Programm die Kommandozeile nicht blockiert. (z.B statt “xclock” “xclock &”)
  • Mit “exit” kann man sich ausloggen, aber nur, wenn keine Programme mehr laufen
  • tab aktiviert die automatische Vervollständigung
  • Die Fehlermeldungen auf der Konsole sind meist unbedenklich

Tipp für Elektro- und Informationstechnik Studenten der Uni Stuttgart
Mit dieser Anleitung ist es möglich die Anmeldung für das Informatikpraktikum von zu Hause aus durchzuführen, wenn man im CIP-Pool schon einen Account hat

  1. Verwende in putty als Hostnamen “l1.cip.ei.uni-stuttgart.de”
  2. Starte “InfPReg &”, und schon bleibt dir ein Gang in den CIP-Pool erspart ;)

xclock unter Windows

xclock unter Windows

xclock unter Windows

WordPress Themes