TestDisk

Vor einigen Tagen gab es eine defekte Festplatte zu reparieren. Rein hardwaretechnisch summte die Platte wie ein Kätzchen. Also habe ich die Festplatte mal per USB an das System angeschlossen und siehe da nichts geht :) Da das ganze auf einem Windowssystem passierte habe ich erst einmal die Datenträgerverwaltung aufgesucht. Aber die wollte auch nichts mit dem Datenträger zu tun haben…

Nun hieß es härtere Bandagen aufzuziehen. Genau in diesem Moment lief mir das nützliche Tool TestDisk über den Weg. Mit Hilfe von TestDisk kann man verschiedene Dinge tun unter anderem Partionstabellen reparieren, das Wiederherstellen von Bootsektoren und andere wunderschöne Dinge :) Und das beste an TestDisk ist das es unter fast jedem System läuft von DOS über Windows und Linux bis zu SunOS. Zu finden ist TestDisk unter http://www.cgsecurity.org/wiki/TestDisk.

Dinge über Linux die ich immer wieder vergesse…

Es gibt so ein paar Dinge und Befehle die ich immer wieder vergesse und dann erstmal wieder minutenlang danach im Internet suche. Aus diesem Grund schreibe ich sie hier mal auf :)

Kernelversion ermitteln
Die Kernelversion ermittelt man, indem man einfach uname -a in die Konsole eingibt.

Rekursiv den Besitzer von Dateien ändern
Möchte man alle Dateien eines Ordners einem anderen Besitzer zu ordnen so benutzt man hierfür den Befehl chown. Um jetzt z.B. alle Dateien welche im Ordner /home/seeseekey/ liegen dem Besitzer robert, der Gruppe users zuzuweisen muss man folgendes eingeben: chown -R -c robert:users /home/seeseekey/.

Mit apt-cache ein Paket suchen
Wenn man mal wieder ein Paket sucht aber nicht genau weiß wie es heißt so hilft apt-cache search Suchbegriff. Das ganze könnte dann z.B. so aussehen: apt-cache search python und schon bekommt man alle Pakete in denen der Name python vorkommt.

Einen IRC Channel von der Kommandozeile mitloggen

Es gibt sicher den einen oder andere interessanten IRC Channel. Was macht man aber wenn man alles lesen möchte was in ihm geschrieben ist aber nicht immer online ist bzw. man den Rechner nicht zu Hause laufen lassen möchte. In solchen Fällen ist ein eigener Server im Netz sehr praktisch.

In diesem Beispiel nutzen wir den IRC Clienten irssi sowie die Anwendung screen. Installiert wird das ganze mittels apt-get:

sudo apt-get install irssi screen

Nachdem wir das installiert haben kann es auch schon losgehen:

screen irssi
/set nick seeseekey
/set autolog on
/connect irc.freenode.net
/join #neo1973-germany

Zu finden sind die Logs dann unter „~/irclogs/servername/#channelname.log“. Mit Strg+A und anschließend D verlässt man den Screen und kann seine SSH Verbindung beenden. Der IRC Client läuft im Hintergrund weiter. Mittels „screen -r“ kann man den Screen später wieder aufrufen.

Vi für Anfänger

In letzter Zeit habe ich eine Menge Dateien auf meinem Freerunner angelegt. Da dies meist über SSH geschah und standardmäßig nur vi installiert ist, blieb mir keine andere Wahl als vi zu benutzen :)

Mit vi eine Datei anlegen
Um mit vi eine Datei anzulegen gibt man in der Konsole einfach vi ein.

Eine Zeile löschen
Hat man in vi etwas geschrieben und möchte eine Zeile entfernen so geht man auf die entsprechende Zeile drückt die Escapetaste gibt dd ein und bestätigt das ganze mit der Entertaste.

Das Dokument speichern und vi beenden
Möchte man das Dokument speichern so drückt man die Escapetaste und gibt anschließend :wq ein. Gibt man hier nur :w so wird das Dokument nur gespeichert.

vi beenden ohne zu Speichern
Möchte man vi beenden ohne das zur Zeit geöffnente Dokument zu speichern so gibt man :q! ein und schon beendet sich vi.

Ist doch ganz einfach oder? ;)

Bittorrent für die Konsole

Heute wollte ich auf meinem vServer mal Bittorrent laufen lassen. Das ganze soll dann natürlich auf der Konsole laufen. Also erst einmal Google angeschmissen und nachgeschaut was der „Markt“ so zu bieten hat. Nach einer Weile fiel meine Wahl dann auf rTorrent.

Das ganze wurde dann mit einem beherzten „apt-get install rtorrent“ auf dem Server installiert. Damit man das ganze später dann im Hintergrund laufen lassen kann sollte man noch das Paket screen installieren (apt-get install screen).

Nun sollte man seinen Midnight Commander starten und aus dem Verzeichnis /usr/share/doc/rtorrent/examples/ die Datei rtorrent.rc in sein home Verzeichnis kopieren. Die Konfigurationsdatei am noch in .rtorrent.rc umbenennen und öffnen. Bei mir sieht die fertige Konfiguration dann so aus:

# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
#max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50

# Maximum number of simultanious uploads per torrent.
#max_uploads = 15

# Global upload and download rate in KiB. „0“ for unlimited.
download_rate = 0
upload_rate = 0

# Default directory to save the downloaded torrents.
directory = ./bt/downloads

# Default session directory. Make sure you don’t run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = ./bt/session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
#schedule = low_diskspace,5,60,close_low_diskspace=100M

# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,“stop_on_ratio=200,200M,2000″

# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no

# Port range to use for listening.
#port_range = 6890-6999

# Start opening ports at a random position within the port range.
#port_random = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no

# Set whetever the client should try to connect to UDP trackers.
#use_udp_trackers = yes

# Alternative calls to bind and ip that should handle dynamic ip’s.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
# encryption = allow_incoming,enable_retry,prefer_plaintext

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to „disable“ (completely disable DHT), „off“ (do not start DHT),
# „auto“ (start and stop DHT as needed), or „on“ (start DHT immediately).
# The default is „off“. For DHT to work, a session directory must be defined.
#
# dht = auto

# UDP port to use for DHT.
#
# dht_port = 6881

# Enable peer exchange (for torrents not marked private)
#
# peer_exchange = yes

#
# Do not modify the following parameters unless you know what you’re doing.
#

# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10

# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100

# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10

Es sind nur ein paar Sachen aktiv. Als erstes ist die Up- und Downloadrate auf unendlich gestellt:

# Global upload and download rate in KiB. „0“ for unlimited.
download_rate = 0
upload_rate = 0

Das Verzeichniss in dem die fertigen Downloads liegen sollen wurde definiert:

# Default directory to save the downloaded torrents.
directory = ./bt/downloads

Und dann wurde noch ein Verzeichnis für die Session definiert, damit rTorrent die Sitzung beim nächsten Start fortsetzt:

# Default session directory. Make sure you don’t run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = ./bt/session

Damit das ganze nun im Hintergrund läuft und nicht gleich terminiert wird sobald die SSH Verbindung beendet wurde, werden wir screen benutzen. Dazu geben wir „screen rtorrent“ auf der Konsole ein. Anschließend öffnet sich rtorrent. Wir drücken Enter und geben den Link des Torrents ein und bestätigen das ganze wieder mit Enter. Damit der Download des Torrents auch anfängt drücken wir Strg + S.

Nun trennen wir die Sitzung ab indem wir Strg + a und dann d drücken. Nun kann man die SSH Verbindung ruhigen Gewissens beenden, rTorrent läuft im Hintergrund weiter. Mit „screen -r“ kann die Sitzung wiederhergestellt werden, falls man mal wieder etwas ändern möchte.

Eine schöne Doku zu rTorrent findet man unter http://wiki.ubuntuusers.de/rTorrent