[[linux:rtorrent:rtorrent-unter-virtualbox-autostart-cifs-samba]]

rtorrent Maschinchen

Ich habe den Eintrag eher als Notizzettel für mich erstellt. Die beschriebene Konfiguration ist ein Rahmen und viele Aspekte sind nicht beachtet worden. Eigentlich sollte mein altes HTC Desire mittels Linux Deploy diese Konfiguration erhalten aber habe bisher keine Zeit gefunden das umzusetzen.

Was ich möchte (unter Windows 8.1):

Die virtuelle Maschine kann nach den eigenen Wünschen ausgestattet werden. Hier:

  • Zwei Netzwerkadapter eins per NAT für den Internetzugang und ein Host-Only für die Windowsfeigaben
  • 512 MB RAM
  • 5 GB HDD

Zur Installation von Debian 7 kam das minimale Netinstall-Image zum Einsatz:

Ist die Maschine bereit, werden die Pakete installiert (apt):

# root werden
 
sudo -s
 
# wir brauchen: rtorrent, cifs für die windowsfreigaben, screen um rtorrent quasi als daemon auszuführen
 
apt-get install rtorrent cifs-utils screen

rtorrent wird als Benutzer ausgeführt, nenn wir ihn „haiko“. Für den Benutzer gibt es ein Dotfile für rtorrent: .rtorrent.rc. Einen guten Start für die Konfigurationsfile findet man im Wiki von ubuntuusers.de:

In meiner Konfiguarion werden die Downloads auf den Windows-Host mittels CIFS geladen (über sinn und unsinn lässt sich streiten). Damit das Laufwerk beim Systemstart hochgefahren wird muss die /etc/fstab editiert werden. in die letzte Zeile trägt man seine Parameter ein und achtet darauf das der Benutzer Schreibrechte auf das Verzeichnis hat:

//192.168.56.1/users/Haiko/Downloads/torrent/ /home/haiko/data/ cifs auto,user=Haiko,pass=passwort,uid=1000,gid=1000,file_mode=0644,dir_mode=0755 0 0

Hier wird auf dem betreffenden Windows-Host das Verzeichnis /users/Haiko/Downloads/torrent/ eingebunden. Ein mount -a als root sollte das Laufwerk unter ~/data einbinden. Man kann mit df -h schnell mal nachschauen ob das geklappt hat:

df -h

//192.168.56.1/users/Haiko/Downloads/torrent/           101G   73G   28G  73% /home/haiko/data

Hilfestellung für CIFS findet man ebenfalls im Wiki der Ubuntusers.de:

Folgende Verzeichnisstruktur habe ich dann angelegt und in der .rtorrent.rc eingetragen:

/home/haiko/data <-- das wurzelverzeichnis für rtorrent
/home/haiko/data/session/ <-- hier speichert rtorrent session-informationen ab
/home/haiko/data/downloads/ <-- hier speichert rtorrent die downloads ab
/home/haiko/data/watch/ <-- rtorrent schaut nach ob neue *.torrent Dateien zum Download bereitliegen

Hier meine Beispielkonfiguration:

# 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 = 500
upload_rate = 50

# Default directory to save the downloaded torrents.
directory = /home/haiko/data/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 = /home/haiko/data/session/

# Watch a directory for new torrents, and stop those that have been
# deleted.
schedule = watch_directory,5,5,load_start=/home/haiko/data/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

#
# 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

# Max number of files to keep open simultaniously.
#max_open_files = 128

# Number of sockets to simultaneously keep open.
#max_open_sockets = <no default>


# Example of scheduling commands: Switch between two ip's every 5
# seconds.
#schedule = "ip_tick1,5,10,ip=torretta"
#schedule = "ip_tick2,10,10,ip=lampedusa"

# Remove a scheduled event.
#schedule_remove = "ip_tick1"

Man kann das ganze jetzt einmal testen indem man eine *.torrent Datei in ./watch reinschiebt und rtorrent startet:

rtorrent

Hierzu editiert man als root die Datei /etc/rc.local und fügt vor dem exit 0 folgendes hinzu:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# als benutzer haiko soll rtorrent im hintergrund (eine art daemon) ausgeführt werden:
su haiko -c "screen -q -dmS rtorrent rtorrent"


exit 0

Startet man die virtuelle Maschine, sollte rtorrent als benutzer „haiko“ gestartet sein.

screen -ls
There is a screen on:
        2986.rtorrent   (06/16/2014 04:20:20 PM)        (Detached)
1 Socket in /var/run/screen/S-haiko.
ps aux | grep rtorr

haiko     2971  0.0  0.3  23260  1296 ?        Ss   17:52   0:00 SCREEN -q -dmS rtorrent rtorrent
haiko     2985  0.6  2.2 118436  8796 pts/0    Ssl+ 17:52   0:00 rtorrent
haiko     3079  0.0  0.2   7832   876 pts/1    S+   17:52   0:00 grep rtorrent

Mit lsof -i lässt sich dann auch nachschauen, was rtorrent mit den Netzwerksockets rumwurschelt.

Möchte man rtorrent in den Vordergrund holen um zu arbeiten kann man das mit:

screen -r rtorrent

Bitte beachten, das man jetzt die Tastenkombinationen von screen nutzen muss um aus der Anwendung wieder „herauszukommen“: ctrl+a+d zum detach des Fensters oder ctrl+a+space um zwischen fenstern zu wechseln.

Der restliche Eintrag ist noch in Bearbeitung!
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
  • linux/rtorrent/rtorrent-unter-virtualbox-autostart-cifs-samba.txt
  • Zuletzt geändert: 2014/06/27 07:53
  • von haiko