20130906

как мы выкладываем LinuxFormat на rutracker.org

возможно, некоторым известно, что с марта этого года редакция русскоязычной версии LinuxFormat-а публикует архив электронных версий журналов на сайте rutracker.org.
сам-то архив всегда был доступен на сайте linuxformat.ru, новым стал только способ предоставления файлов.
деталей взаимодействия с сайтом rutracker.org я приводить не буду, так как, во-первых, это несущественно для данной технической заметки, а во-вторых, не я этим занимаюсь.

итак, есть сервер, работающий под управлением debian gnu/linux и есть дерево с файлами, из которых надо создать torrent-файл и впоследствии поддерживать его «раздачу»:
LinuxFormat/
├── 2005
│   ├── 070.pdf
...
└── 2012
    ├── 152-153.pdf
    ├── 154fix.pdf
    ├── 155.pdf
    ├── 156.pdf
    ├── 157.pdf
    └── 158.pdf

всё, что понадобилось доустановить, это два пакета — rtorrent и bittornado.
по условиям работы rutracker.org (вероятно, и всех других трекер-сайтов) нужно сгенерировать torrent-файл с пустым списком трекеров.
поэтому в качестве первого параметра программе btmakemetafile передаём пустую строку:
$ btmakemetafile '' LinuxFormat
получившийся файл LinuxFormat.torrent и используем на сайте rutracker.org.
после создания/обновления «раздачи» скачиваем подправленный сайтом torrent-файл (в него добавляется список трекеров и наш уникальный секретный «ключ»).
этот самый полученный файл и надо «скормить» rtorrent-у.
но предварительно имеет смысл задать ограничение скорости и сохранение сессий, чтобы после перезапуска rtorrent-а не требовалось дополнительных телодвижений.
для этого в файл ~/.rtorrent.rc вписываем:
upload_rate = 123
session = ./session
т.е., скорость загрузки с нашего сервера будет 123KiB, а сессия будет сохраняться в каталоге session того каталога, откуда запущен rtorrent (не забудьте его создать — сам rtorrent этого не делает).

финальный штрих.
т.к. rtorrent не умеет работать «демоном», запускать его можно, например, по рецепту разработчиков, используя предлагаемый ими init-скрипт (после внесения необходимых правок).