Freitag Aug. 29, 2008

Enhanced CTorrent - Ein BitTorrent Client unter Linux für die Kommandozeile

Bisher hatte ich immer MLDonkey verwendet, um Torrents downzuloaden. Zum Downloaden von Linux Distributionen, ISO-Images oder Remixes von remix.kwed.org/slayradio.org ganz praktisch. Läuft als Daemon im Hintergrund und man kann darauf komfortabel per Weboberfläche zugreifen. Zu dem kennt MLDonkey noch viele weitere Protokolle/Netze u.a. auch das Donkey-Netz. Wenn man aber nur Torrents down- oder uploaden möchte, dann gibt's was Besseres für Freunde der Kommandozeile. Ausserdem erspart man es sich, den MLDonkey-Daemon zu konfigurieren.

Enhanced CTorrent nennt sich das Tool. Funktioniert denkbar einfach. Soweit kein Paket bei der verwendeten Linux-Distribution dabei ist, kompiliert man das einfach selber mit dem üblichen configure, make, make install. Will man jetzt ein Torrent downloaden, braucht man natürlich das Torrent selbst und dann folgenden Befehl:

ctorrent -d datei.torrent

Zusätzlich interessant sind noch die Optionen

-I <nach_aussen_sichtbare_ip>
-e 500
-S localhost:2780 -e 500

Wenn man hinter einem Router mit NAT sitzt, dann kann man mit -I die IP-Adresse angeben, mit denen andere Torrent-Clients sich verbinden können, um eine Peer-Connection aufzubauen. Macht den Download schneller. Funktioniert natürlich nicht bei privaten Torrents.
-e gibt an, wie lange man den runtergeladenen Torrent noch seed'en möchte, also wie lange andere User den Torrent auf dem eigenen Rechner noch erreichen können. Man sollte hier schon noch 2-3 Tage seeden, damit viele andere User möglichst schnell downloaden können und viele Quellen zur Verfügung stehen.
Mit -S gibt man die IP und Port-Nummer des CTCS-Servers an. Dieser CTorrent Control Server stellt eine Weboberfläche zur Verfügung, mit dem man alle Torrents kontrollieren kann. Das macht die Sache komfortabler und übersichtlicher.

Den CTorrent Control Server kann man hier downloaden: CTorrent Control Server Auch hier gilt: Liegt kein Paket vor, einfach downloaden und mit dem o.g. Dreisatz übersetzen und installieren. Und dann einfach starten:

ctcs -d 250 -u 20

In diesem Fall geben wir eine Download-Rate von 250 KByte/s vor und eine Upload-Rate von 20 KByte/s. Per Default hört der ctcs-Daemon auf localhost:2780. Dort hin kann man sich mit dem Webbrowser verbinden und sieht dann alle laufenden Torrents und kann deren Status ändern und noch viele weitere Änderungen komfortabel vornehmen.

Wenn man ctorrent mit der Option -S localhost:2780 startet, dann verschwindet ctorrent in den Hintergrund und meldet den eigenen Status an den ctcs-Daemon.

Möchte man einen eigenen Torrent  über einen externen Tracker anbieten, kann man mit folgendem Kommando einen eigenen Torrent erstellen:

ctorrent -t -u "http://externe.tracker.url" -s datei.torrent dateiname_zum_downloaden

Freitag Aug. 22, 2008

Linux: I/O pro Prozess anzeigen

Oh wie lange habe ich auf dieses Feature gewartet! Wer einen Kernel 2.6.20 oder höher einsetzt, der kann sich mit dem Tool pidstat aus dem sysstat (> V 7.1.5) Paket sich jetzt anzeigen lassen, was welcher Prozess denn da gerade auf der Platte rummacht. Leider hat selbst Redhat Enterprice 5.2 nur einen 2.6.18 Kernel und dieses Kernel Feature nicht zurückportiert, wo doch gerade bei diesen Enterprise Plattformen solche Informationen sehr wichtig sind. Nun ja... So sieht das dann jedenfalls aus (pidstat -d 5 10):

 3:06:24          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
13:06:29         7224      6.40      0.00      0.00  make
13:06:29         9150      0.00     22.40     22.40  postgres
13:06:29         9207      0.80      0.80      0.00  logd
13:06:29         9410     13.60      0.00      0.00  xgcc
13:06:29         9411    352.80     12.00      0.00  cc1
13:06:29         9412     44.00      0.00      0.00  x86_64-pc-linux
13:06:29        11793      0.00      3.20      0.80  thunderbird-bin
13:06:29        12751      4.00     24.80      0.00  firefox-bin
13:06:29        30591  10771.20      0.00      0.00  rsync
13:06:29        30593      0.00  10752.00      0.00  rsync
13:06:29        32469      3.20      1.60      0.00  emerge

Hier sieht man sehr schön, das rsync ganz gut unterwegs ist. Damit das funktioniert, müssen im Kernel folgende Optionen aktiviert sein:

CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y

Dienstag Aug. 19, 2008

Western Digital Mybook und Linux

Speicherplatz zu Ende, Backup muss auch sein, also USB-Platte her. Die WD MyBook gefiel mir ganz gut. Sehr leise im Übrigen und die 1 TByte Edition bringt auch viel Speicher mit und ist auch unter Linux ausreichend schnell für Backup- oder Archivierungszwecke. Was ich ganz gut finde, wenn man mit der Platte nicht ständig arbeitet ist, das sich die Platte selber runterfährt, wenn sie für einige Zeit nicht in Gebrauch. Solange sie gemountet ist, fährt sie auch wieder hoch, wenn man darauf zugreift. Bei mir dauert das ca. 5-7 Sek.

Man kann das Ausschalten auch per Kommando unter Linux bewerkstelligen:

sdparm --command=stop /dev/sdb

/dev/sdb ist in meinem Fall die MyBook USB-Platte. Das ist ganz praktisch, um Strom zu sparen, wenn man nur kurz darauf zugreifen will oder muss. Mit --comand=start startet man die Platte wieder.

Ich vermute mal, das das vielleicht auch mit anderen USB-Platten funktioniert, die sich als USB Massenspeicher melden und eingebunden werden. Ausprobiert habe ich es aber noch nicht.

Freitag Aug. 01, 2008

Qemu, KVM, Anaconda - lvm: Cannot allocate memory

Nachdem ich gerade am Testen von Red Hat Enterprise 5 mit Qemu/KVM bin und mir Anaconda beim Initialisieren der Festplattenpartitionen die Meldung

lvm: Cannot allocate memory

um die Ohren gehauen hat, wollte ich die Welt teilhaben lassen an der Lösung ;-) Ich hatte Qemu gestartet mit

/opt/kvm/current/bin/qemu-system-x86_64 -hda rhel52.img -cdrom /opt/cds/rhel-5-server-x86_64-dvd.iso -boot d -m 256

Der Witz ist, 256 MB Speicher reichen nicht! Es müssen mindestens 512 MB sein. Ich hab's dann probiert mit

/opt/kvm/current/bin/qemu-system-x86_64 -hda rhel52.img -cdrom /opt/cds/rhel-5-server-x86_64-dvd.iso -boot d -m 640

und das funktioniert dann.