domenica 9 novembre 2014

torrent client su raspbian - piccole soddisfazioni!

PREMESSA:
il Raspberry PI oltre ad essere un un calcolatore implementato su una sola scheda elettronica (SBC) capace di pilotare 40 periferiche esterne (GPIO) e fare tante altre cose è un "cazzariello" che al massimo può assorbire 10W e costa sotto i 30 euro! se ci installi "Raspbian" è un sistema minimalista LINUX!, lo attacchi al cavo di rete ed ad una unità disco USB e tramite ssh ci fai quello che ti pare (web server, NAS, FTP, etc....)

Io lo uso come NAS e per scaricare i torrent senza avere l'incubo di dover lasciare il PC acceso.

aggiornamento dal LinuxDay2014: esiste in commercio un SBC chiamato "arietta g25" che costa uguale al raspberry ma e' open source e consuma almeno un terzo del raspberry

Mettiamoci all'Opera:
montiamo il disco esterno:
bisogna montarlo a mano e registrarlo nella fstab in modo che all'avvio sia montato automaticamente. Prima pero' bisogna installare i pacchetti "ntfs-3g" altrimenti il disco (se formattato ntfs) risulta read-only.
ecco il file fstab del mio raspbian:

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
/dev/sda1       /mnt/passport       ntfs-3g defaults        0       2


a questo punto si seguono le istruzioni di archlinux su rtorrent
Io ho creato sul disco USB le folder:
torrents - dove vengono scaricati i file
.session - dove si memorizzano le info sulle sessioni iniziate
watch - dove mettere i file .torrent

e ho configurato cosi' il file .rtorrent.rc

min_peers = 40
max_peers = 52

min_peers_seed = 10
max_peers_seed = 52
max_uploads = 8
download_rate = 500
upload_rate = 28

check_hash = yes
directory = /mnt/passport/torrents/
session = /mnt/passport/.session/
schedule = watch_directory,5,5,load_start=/mnt/passport/watch/*.torrent
schedule = untied_directory,5,5,stop_untied=
schedule = tied_directory,5,5,start_tied=


in questo modo, quando avvio rtorrent, lui guarda nella folder /watch per i torrent recupera le sessioni lasciate aperte in /.session e scarica i file in /torrents

Il mio raspberry pero' non e' collegato ad un monitor e quindi uso lo smartphone e con fing recupero l'IP del raspberry e con juice-ssh apro una sessione ssh. C'e' anche un simpatico che ha anche un simpatico plugin che da in un colpo d'occhio le prestazioni del server ssh.

Altra questione da risolvere: se chiudo la sessione ssh spengo anche rtorrent. Per far in modo che rtorrent sia un servizio sul mio server faccio una cosa semplice che pero' non conoscevo, installo il comando "screen" che mi permette di "appendere" sessioni terminali e per accendere rtorrent digito il comando

screen -f -da -m rtorrent

poi per vedere rtorrent che sta combinando digito

screen -ls 

per vedere quali processi stanno appesi,
Ad esempio:

There is a screen on:
        2170..raspberrypi       (10/11/14 06:03:02) (Detached)
1 Socket in /var/run/screen/S-pi.

poi per vedere il nostro basta fare

screen -x "nome del processo"

infine per uscire e "riappendere" rtorrent uso la combinazione dei tasti

Ctrl+a e poi il tasto d

rimane da fare un autorun all'avvio di rtorrent:
editare un file con la stringa su scritta
dare al file i permessi di esecuzione con chmod a+x
posizionarlo in /etc/init.d
e poi eseguire update-rc.d nomefile defaults
pero' a questo punto mi accorgo che il comando viene eseguito all'avvio ma come root. Non va bene, deve essere eseguito come pi.
Alla prossima puntata...