Я как никто другой люблю изучать все новое и конечно же экспериментировать, обычно с софтом/железом и всем до чего моих знаний хватает. Вот сейчас читая в очередной раз о том, как собрать хоть пока и по руководствам: гусеничная платформа + Arduino Uno R3 + Raspberry. Вдруг на меня снизошло, а как поведет себя миникомпьютер Raspberry Pi 3 Model B если на нем поднять сервис который будет управлять torrentами. Ведь только с помощью них и происходит самообразование, покупать книги/аудиоматериалы так вообще разоришься. Я же предпочитая читать с экрана ноутбука, компьютера, планшетника — так удобнее. Да и к тому же в качестве сервиса управления torrent ами выступит давно известная и ранее применяемая утилита, как rtorrent.
Сперва подготавливаю установленную систему на карту памяти размером в 32Gb по заметке.
И далее все действия:
pi@raspberrypi:~ $ apt-cache search rtorrent
rtgui - Web based front-end for rTorrent
rtorrent - ncurses BitTorrent client based on LibTorrent from rakshasa
rtpg-www - web based front end for rTorrent
Устанавливаю необходимые пакеты посредством которых и должна воплотиться моя задумка:
pi@raspberrypi:~ $ sudo apt-get install rtorrent rtpg-www screen -y
pi@raspberrypi:~ $ mkdir save
pi@raspberrypi:~ $ mkdir session
pi@raspberrypi:~ $ touch session/.session
pi@raspberrypi:~ $ mkdir torrent
pi@raspberrypi:~ $ nano .rtorrent.rc
min_peers = 1
max_peers = 500
download_rate = 0
upload_rate = 0
directory = /home/pi/save/
session = /home/pi/session/
schedule = watch_directory,5,5,load_start=/home/pi/torrent/*.torrent
port_range = 40890-40890
port_random = no
check_hash = yes
session_save = yes
encryption = allow_incoming,enable_retry,prefer_plaintext
use_udp_trackers = yes
dht = auto
dht_port = 6881
encoding_list = UTF-8
scgi_port = localhost:5000
Теперь чтобы утилита rtorrent запускалась автоматически при перезагрузке миникомпьютера Raspberry Pi 3 Model B мне потребуется файл заготовка: rtorrentInit.sh.tar. У меня она уже есть, я еще давным-давно когда в работе использовал Ubuntu Maverick, разбирал как работает rtorrent, скачал ее и добавил в свое домашнее хранилище наработок на базе OwnCloud. А так как сейчас ссылки в интернет в основном ведут в никуда на ее скачивание я существенно облегчил себе задачу.
pi@raspberrypi:~ $ sudo mv rtorrentInit.sh /etc/init.d/
pi@raspberrypi:~ $ sudo nano /etc/init.d/rtorrentInit.sh
#!/bin/sh
### BEGIN INIT INFO
# Provides: rtorrentInint.sh
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Desctiption: Enable service provided by daemon
### END INIT INFO
#user="user"
user="pi"
pi@raspberrypi:~ $ sudo update-rc.d rtorrentInit.sh defaults
pi@raspberrypi:~ $ sudo chmod +x /etc/init.d/rtorrentInit.sh
pi@raspberrypi:~ $ sudo chown root:root /etc/init.d/rtorrentInit.sh
pi@raspberrypi:~ $ sudo /etc/init.d/rtorrentInit.sh start
Starting rtorrent: rtorrent.
pi@raspberrypi:~ $ sudo netstat -tulpn | grep rtorrent
tcp 0 0 0.0.0.0:40890 0.0.0.0:* LISTEN 9019/rtorrent
Отлично утилита rtorrent запущена и работает ожидая соединения.
Теперь переходим к настройке Web–интерфейса для управления Torrentами на миникомпьютере:
pi@raspberrypi:~ $ sudo a2enmod scgi
pi@raspberrypi:~ $ sudo a2enmod cgi
pi@raspberrypi:~ $ sudo nano /etc/rtpg/rtpg.conf
rpc_uri = 127.0.0.1:5000
refresh = 15000
skin = default
pi@raspberrypi:~ $ sudo unlink /etc/apache2/sites-enabled/000-default.conf
pi@raspberrypi:~ $ sudo unlink /etc/apache2/sites-available/000-default.conf
pi@raspberrypi:~ $ sudo unlink /etc/apache2/sites-available/default-ssl.conf
pi@raspberrypi:~ $ sudo nano /etc/apache2/sites-enabled/rtpg.apache.conf
<VirtualHost *:80>
ServerName raspberry
DocumentRoot /usr/share/rtpg-www/htdocs
SetEnv RTPG_CONFIG /etc/rtpg/rtpg.conf
AddHandler cgi-script .cgi
<Directory /usr/share/rtpg-www/htdocs/>
DirectoryIndex index.cgi
Options FollowSymLinks ExecCGI
AddDefaultCharSet utf-8
AllowOverride All
Order deny,allow
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName rtpg-scgi.localhost
SCGIMount /RPC2 127.0.0.1:5000
<Location /RPC2>
Order deny,allow
allow from 127.0.0.1
deny from all
</Location>
</VirtualHost>
pi@raspberrypi:~ $ sudo apache2ctl configtest
pi@raspberrypi:~ $ sudo a2ensite rtpg.apache.conf
pi@raspberrypi:~ $ sudo service apache2 reload
pi@raspberrypi:~ $ sudo netstat -tulpn | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9610/apache2
Обращаюсь к Web–интерфейсу
http://IP&DNS и вот то что я ранее использовал на Ubuntu Maverick, если в каталоге torrent оказываются Torrent-файлы, то происходит их закачка:
ekzorchik@navy:~$ scp /tmp/mozilla_ekzorchik0/* pi@192.168.1.116:/home/pi/torrent
pi@192.168.1.116's password:
Head First O'Reilly na russkom [10 knig].[tfi 100% 171KB 171.3KB/s 00:01
Kris_Kasperski_Iskusstvo_Dizassemblirovaniya. 100% 14KB 13.6KB/s 00:00
Matveev S.A. - Samyj nuzhnyj samouchitel' ang 100% 1215 1.2KB/s 00:00
Real English_[tfile.ru].torrent 100% 13KB 13.1KB/s 00:00
Vysshij.Pilotazh.2005.RUS.BDRip.XviD.AC3.-HQ- 100% 15KB 15.2KB/s 00:00
Как только torrent-файлы будут скачаны, они располагаться в каталоге save который я бы порекомендовал посредством сервиса Samba расшарить для всех, как в локальной сети, так и Ваших устройств.
На этом у меня всё, вот так приходились заметки разобранные давным-давно и были переориентированы на миникомпьютер которым я с недавнего времени работаю и экспериментирую. Задача выполнена, с уважением автор блога Олло Александр aka ekzorchik.