Archiv

Artikel Tagged ‘Linux’

Mit tar übers Netzwerk kopieren

26. Dezember 2010 Keine Kommentare

Ab und zu möchte man doch mal etwas von einem Linux-Server auf einen anderen kopieren, z.B. beim Umzug einer oder mehrerer Domains von einem auf den anderen Server. Vorausgesetzt man hat auf beiden Linux-Servern Shellzugang, so kann man folgende Kommandoverkettung nutzen, um per tar + ssh über das Netzwerk die Dateien und Ordner inklusive Datendurchsatzanzeige und Datenpufferung zu kopieren:

cd /hier/liegt/das/alte/zeug
tar cpf – * | mbuffer -m 200M | ssh @ tar xpf – -C /hier/soll/das/alles/hin

Nutzt man „mbuffer“, so sieht man sowohl den aktuellen Pufferfüllstand, als auch die aktuelle Übertragungsgeschwindigkeit im Netzwerk. Per „-m 200M“ wird der Puffer auf dem aktuellen System auf 200 Megabyte gesetzt. Je größer der Puffer, desto mehr RAM muss die aktuelle Maschine haben.

Die Ausgabe sieht dann Beispielhaft wie folgt aus:

in @ 286 MB/s, out @ 91.4 kB/s, 64.0 kB total, buffer 100% full
[….]
in @ 0.0 kB/s, out @ 1304 kB/s, 3227 MB total, buffer 0% full
summary: 3227 MByte in 6 min 34.3 sec – average of 8380 kB/s

Den „mbuffer“ kann man natürlich auch weglassen, dann fehlen allerdings jegliche informelle Anzeigen:

cd /hier/liegt/das/alte/zeug
tar cpf – * | ssh @ tar xpf – -C /hier/soll/das/alles/hin

KategorienLinux Tags: , ,

proftpd 1.3.1 und libtool 2.2 unter gentoo – compile fix

16. September 2008 Keine Kommentare

Derzeit gibt es leider einen hartnäckigen Compilefehler mit libtool-2.2 und proftpd-1.3.1 unter Gentoo. Die Lösung ist schon vorhanden, aber derzeit leider noch (immer) nicht in portage.

In dem entsprechenden BUG-Report befindet sich die Lösung als ebuild (attachment). Sofern noch nicht vorhanden, legt euch z.B. unter /usr/local/portage ein neues portage overlay an und tragt dies in /etc/make.conf ein. Dann legt die Verzeichnisse net-ftp/proftpd an (mkdir -p net-ftp/proftpd) und kopiert das ebuild aus dem BUG-Report dorthin. Dann noch ein ebuild ./<name des ebuild> digest und ihr könnt proftpd erfolgreich installieren.

KategorienInternet, Linux Tags: ,

Sortieren mit sort unter Linux

13. August 2008 Keine Kommentare

Ich hatte so eben das Problem, eine Liste mit zugespammten Email-Adressen zu sortieren. Ein cat emails.txt | sort sortiert mir die Liste, allerdings nach dem Usernamen-Teil der Email-Adresse (also nach dem Teil vor dem @).

Ich brauchte aber eine Sortierung nach dem Domainteil. Ein kurzes Stöbern in der man-page zu sort brachte dann auch die Lösung:

cat emails.txt | sort -t ‚@‘ -k +2

sort soll das Zeichen @ als Trenner nehmen und dann nach dem Feld 2 sortieren. Und schon hab ich meine Liste von Email-Adressen nach deren Domain sortiert und kann diese Liste nun z.b. in Openoffice Calc weiterverarbeiten.

KategorienLinux Tags:

Ein paar Linux-Tricks und ein Tip für Windows

12. Juni 2008 1 Kommentar

 Ich habe lange nichts geschrieben, doch nun gehts wieder voran! Diesmal gleich mit ein paar Tricks rund im Linux, die vielleicht nicht jeder kennt.

Wie sehe ich, wer oder was auf die Festplatte schreibt?

Schnell und einfach hilft es, per sysctl den Kernel anzuweisen, alle aktivitäten zu protokollieren. Je nach Auslastung des Servers kann das natürlich innerhalb kürzester Zeit die entsprechenden Logfiles zumüllen, also vorsicht!

Der nötige Befehl lautet: sysctl vm.block_dump=1

Das ganze kann dann z.B. so aussehen:

mysqld(9336): dirtied inode 17911863 (sessions.frm) on sdb1
mysqld(9336): dirtied inode 17911864 (sessions.MYI) on sdb1
mysqld(9336): dirtied inode 17911865 (sessions.MYD) on sdb1
mysqld(9336): dirtied inode 17911872 (user.frm) on sdb1
mysqld(9336): dirtied inode 17911873 (user.MYI) on sdb1
mysqld(9336): dirtied inode 17911874 (user.MYD) on sdb1

Ein weiterer Freund hierbei ist fuser. Das Werkzeug kann unter anderem auch alle Prozesse beenden, welche z.B. das Dateisystem auf /home nutzen .. und es kann ebenfalls anzeigen, was im System passiert.

fuser -muv /dev/sdb1

Dieser Befehl zeigt mir an, was im Moment des Aufrufs auf der Platte sdb und Partition 1 passiert, z.B.:

/dev/sdb1:           mysql      1141 F.c.. (mysql)mysqld
                     nobody     6448 F...m (nobody)httpd
                     nobody     8278 F...m (nobody)httpd
                     nobody     8545 F...m (nobody)httpd
                     qscand    11449 F.c.. (qscand)perl5.8.8

Sortieren der Useflags bei Gentoo in der make.conf

Oft genug kommt es vor, das man hier oder da mal ein USE-Flag in der make.conf setzt und natürlich in keinster weise das neue Flag alphabetisch einsortiert. Das folgende kleine Script gibt alle benutzen USE-Flags aus der make.conf sortiert aus. Ein kurzes copy&paste und schon herrscht wieder Ordnung:

cat /etc/make.conf | grep "USE=" | grep -v "^#" | awk '{ for (i = (NF -1); i >= 2; i-- )  print $i}' | sort | xargs echo

Dieser Tipp stammt aus dem Gentoo-Forum.

Woher bekomme ich noch mehr Tips und Tricks?

Das Forum von Gentoo ist nicht nur für Nutzer dieser Distribution geeignet, es enthält auch jede Menge Insiderwissen sowie Dokumentationen rund um den Kernel, Filesysteme und Software. Vorbeischaun lohnt sich!

 

Und was ist mit Windows?

Für die Windows-Fans hab ich hier noch eine Seite, welche recht zuverlässig dabei hilft, eingesetzte Software auf dem aktuellen Stand zu halten. Auf filehippo.com gibt es den Update Checker, eine kleine .NET Anwendung, welche das System nach bekannter Software durchsucht und mit einer Versionsliste der filehippo.com Seite vergleicht. Nach der Durchsuchung werden die Ergebnisse im Browser angezeigt und bei Bedarf kann eine neue Version des einen oder anderen Programmes installiert werden. Neben den Downloadlinks wird u.a. auch die genaue Versionsnummer der Software angezeigt. Was mich betrifft, so habe ich bisher keine unerlaubten Aktivitäten des Tools festgestellt und es tut seine Dienste wie es soll. Ob man den Leuten von filehippo.com vertraut bleibt einem natürlich selbst überlassen 🙂

login incorrect

22. März 2008 2 Kommentare

„login incorrect. good bye.“ .. das sagte mir mein Backup-FTP-Server, nachdem ich mein neues Backupscript auf einen anderen Server kopiert hatte. „Alles klar“ dachte ich mir, hab ich mich beim copy&pasten vom Passwort wohl „verpasted“. Also nochmal Buchstabe für Buchstabe abgeglichen, alles richtig. Username ist auch richtig. IP-Adresse ebenfalls .. seltsam. Zur sicherheit habe ich nun nochmals per Hand verucht, eine FTP-Verbindung aufzubaun und siehe da, es ging. Vielleicht ein Bug mit ncftp auf diesem Server? Ich habe ncftpput also angewiesen, ein Logfile der FTP-Konversation zu schreiben, aber dort sah alles richtig aus. Langsam verstand ich echt nur noch Bahnhof.

Dann habe ich mir per tcpdump den kompletten TCP Datenverkehr zwischen meinem Server und dem FTP-Server mitschneiden lassen, das Datenfile dann auf meinen Arbeitsrechner kopiert und per Wireshark geöffnet. Wireshark kann neben vielen, vielen Dingen auch gezielt TCP-Verbindungen aus einer vielzahl von Verbindung ausfiltern und die enthaltenen Daten anzeigen. Ein kurzer Blick zeigte: die FTP-Verbindung läuft genauso ab wie sie sollte, trotzdem antwortete der Server mit „login incorrect“.

Doch die Lösung des Rätsels war nur Sekunden entfernt: die Anzeige der Konversation in richtung FTP-Server zeigte, dass sich hinter dem Passswort ein Leerzeichen eingeschlichen hatte, was natürlich das Passwort ungültig machte. Minutenlanges rätseln und dann so eine einfache Lösung, mit einem Overkill an Aufwand herausgefunden.

Fazit: Hätte ich einfach mal geprüft, ob hinter dem Passwort ein Leerzeichen steht, so hätte ich mir die ganze Arbeit ersparen können! Manchmal sind es eben die kleinen Dinge, die einen verrückt machen 😉

KategorienInternet, Linux Tags: , , ,

Wer hat noch nicht, wer Spamt noch mal?

30. Januar 2008 1 Kommentar

Wer kennt das nicht: 100 Mails abgeholt, 99 davon sortiert der Mailclient (z.B. Thunderbird) direkt als Spam aus, die letzte verbliebene Mail ist tatsächlich kein Spam. Der Kampf gegen den Spam ist ein Wettrennen, das von den „guten“ nicht gewonnen werden kann. Ich renne trotzdem mit und habe neben Spamassassin nun noch ein eigenes kleines Plugin für den SPP-Patch für Qmail geschrieben. Dieser Patch erweitert qmail-smtpd um Plugins, welche in jeder beliebigen Sprache (Shell, C, PHP, Perl, Python …) geschrieben werden können, hauptsache die Shell kann es ausführen.

Mein Plugin prüft direkt nach dem „DATA“-Befehl des Senders dessen IP-Adresse auf vorhandensein in der RBL-Liste von spamcop.net. Dort sind IP-Adressen von Spamversendersystemen gelistet inklusive Gründe, wieso die IP-Adresse gelistet wurde. Natürlich ist man als Serverbetreiber von der Korrektheit des Anbieters und auf dessen Sorgfalt angewiesen, nach langer Laufzeit konnte ich allerdings bisher keine falschen Einordnungen feststellen. Anhand des folgenden Bildchens erkennt man sehr gut, dass durch den Einsatz des IP-Checks rund 50% des Spamaufkommens schon direkt bei der Kommunikation mit dem Mailserver abgelehnt werden konnte.

Spamstatistik

Mein Plugin kann hier heruntergeladen werden. Geschrieben wurde es mit der Shell und ist relativ einfach erweiterbar und verständlich. Benutzung auf eigene Gefahr!

KategorienInternet, Linux Tags: , , , ,

PHP4 Support beendet

4. Januar 2008 Keine Kommentare

Zum 31.12.2007 endete der Support für PHP4 durch die Entwicklergemeinschaft. In diesem Zuge wurde die vorerst letzte offizielle PHP4 Version 4.4.8 veröffentlicht. In diesem Release wurden etliche sicherheitsrelevante Fehler beseitigt. In Zukunft wird es also keine neuen Versionen der 4er Reihe von PHP geben, die Entwickler schließen allerdings nicht aus, dass es weitere Fehlerkorrekturen bis zum 08.08.2008 geben wird, allerdings keine neuen Features.

Die Entwickler und ich empfehlen, sofern möglich, auf PHP 5.2 zu aktualisieren. Der 5er Zweigt bringt haufenweise Verbesserungen im OOP-Bereich sowie der Speicherverwaltung und anderer Bereiche. Die kommende Version 6 wird im OOP-Bereich nochmals einen Zahn zulegen und wird die erste PHP-Version, welche offiziell komplette mit UTF-8 zurecht kommt. Bisher sind hier leider oftmals Umwege über die mbstring-Funktionen nötig.

Und zum Abschluß noch eine durchaus wichtige Anmerkung: Wer einen eigenen Server betreibt und PHP selbst compiliert und installiert sollte stets darauf achten, immer die aktuellste PHP-Version zu verwenden. Das gefährlichste am Internet heutzutage sind nicht behobene Sicherheitslücken!

KategorienProgrammierung Tags: ,

Einen Überblick verschaffen

25. Dezember 2007 1 Kommentar

„Hier, da steht das Ding. Machen Sie mal, das das wieder geht!“. „Können Sie mir sagen, welche Distribution installiert ist und was nicht geht?“. „Distri.. was? Woher soll ich das wissen, das hat immer unser EDVler gemacht mit dem Linuxzeug da, der is aber nicht mehr da. Mails gehen halt nicht mehr.“

Und schon geht der Los, der Linuxadmin-Spaß.

Mehr…

KategorienLinux Tags:

Linux … kann man das essen?

25. Dezember 2007 2 Kommentare

Um den Blog endlich mit sinnvollen Inhalten zu füllen, werde ich absofort quasi aus meinem Nähkästchen für Linuxadministratoren plaudern. Zu beginn möchte ich einen kleinen Überblick darüber geben, was Linux überhaupt ist.

Mehr…

KategorienLinux Tags:

Webseite nach UTF-8

18. Juni 2007 Keine Kommentare

Hier ein kleines Bash-Script von mir, um eine komplette Webseite (bestehend aus PHP, Javascript und Templates) von ISO-8859-1 zu UTF-8 zu konvertieren. Das Script läuft bei mir bestens, ich gebe aber absolut keine Garantie!

#!/bin/sh

echo Konvertiere .php zu UTF-8
for i in `find -name '*.php' | xargs`
do
        iconv -f ISO8859-1 -t UTF-8 $i > "$i"5
        mv "$i"5 $i
done

echo Konvertiere .inc zu UTF-8
for i in `find -name '*.inc' | xargs`
do
        iconv -f ISO8859-1 -t UTF-8 $i > "$i"5
        mv "$i"5 $i
done

echo Konvertiere .tpl zu UTF-8
for i in `find -name '*.tpl' | xargs`
do
        iconv -f ISO8859-1 -t UTF-8 $i > "$i"5
        mv "$i"5 $i
done

echo Konvertiere .js zu UTF-8
for i in `find -name '*.js' | xargs`
do
        iconv -f ISO8859-1 -t UTF-8 $i > "$i"5
        mv "$i"5 $i
done
KategorienLinux Tags: , ,