sleepycat
Не надо мне читать, мне надо выдергивать из ленты нужные (подходящие под шаблон) торренты и закачивать, без моего участи в процессе.
Нужно умереть молодым и сделать это как можно позже.
rnqlover
Мне просто надо работать с RSS, а кто будет собирать и как - всё равно. На винде именно utorrent прекрасно работал с RSS, думал что и тут тот же функционал остался, но увы.
Gineaser
Торрент-клиент, умеющий работать с RSS, сам выбирает и скачивает торренты с RSS-ленты трекера (например, Лостфильма) по указанному пользователем шаблону. Очень удобно качать сериалы, т.к. новые серии автоматически добавляются в закачку.
Нужно умереть молодым и сделать это как можно позже.
RiD
Подскажи, пожалуйста, как ставил и как настраивал.
Запуск через “sudo /etc/rc.d/rtorrentd start” - не идет, а если запустить в терминале "sudo screen -d -m -S rtorrent rtorrent" (взял из /etc/rc.d/rtorrentd), то вроде как запускается rtorrent, и sudo screen -r выдаёт окно rtorrenta и надписи внизу:
(13:47:44) Using 'epoll' based polling.
(13:47:44) Could not read resource file: ~/.rtorrent.rc
web всё те же надписи выдаёт, что нет связи с rtorrent и проверьте порты scgi.

bobart
Благодарю, уже читал.
Нужно умереть молодым и сделать это как можно позже.
rnqlover
Поставил utserver, запустил. Но как работать с RSS? Получается очень урезаный функционал. Таких програм и родных под Линукс много. Мне нужна именно возможность работы с RSS.
Нужно умереть молодым и сделать это как можно позже.
2rnqlover
utorrent-server такой же легкий и быстрый как rtorrent? Насколько стабилен, ведь он еще альфа? Я на арч с dwm только из-за минимализма, быстроты и легкости переходил.
2Gineaser
Пробовал Deluge. Отказался из-за невозможности нормально работать с RSS.
Лучше всего по функционалу был ktorrent, но после перехода на Arch+dwm - не вижу смысла грузить кучу библиотек и запускать в фоне ненужные процессы.
Нужно умереть молодым и сделать это как можно позже.
Хочу перейти на rtorrent. Не получается запустить. Установку и настройку поизводил по статье: http://habrahabr.ru/post/120167/. Вроде и руки не особо кривые, и с головой дружу, и даже на Убунте в свое время поставил rtorrent (только с lighttpd). Но в этом случає не получается запустить rtorrent.
Согласно статье можно поставить ВМЕСТЕ rtorrent-color и libtorrent-extended. Но rtorrent-color у меня во время сборки выдал ошибку, взамен ему поставил простой rtorrent, который, в свою очередь, вступил в конфликт с libtorrent-extended, который пришлось удалить. В итоге, у меня стоит только rtorrent с основного репозитория. По ходу вопрос: Какой лучше ставить rtorrent, расчитывая его круглосуточное использование и управление через web-интерфейс (rutorrent)?
Вот мои конфиги, выложенные по порядку исправления, согласно статье http://habrahabr.ru/post/120167/ (пользователь = “z”, система = “notebook”):
/etc/php/php-fpm.conf
;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;
... вырезал всё, что не раскомментировано ...
;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;
[global]
; Pid file
; Note: the default prefix is /var
; Default Value: none
pid = run/php-fpm/php-fpm.pid
;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ;
;;;;;;;;;;;;;;;;;;;;
; Start a new pool named 'www'.
; the variable $pool can we used in any directive and will be replaced by the
; pool name ('www' here)
[www]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = http
group = http
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses on a
;                            specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000
;listen = /var/run/php-fpm/php-fpm.sock
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
;                 mode is set to 0666
listen.owner = http
listen.group = http
listen.mode = 0660
; Choose how the process manager will control the number of child processes.
; Possible Values:
;   static  - a fixed number (pm.max_children) of child processes;
;   dynamic - the number of child processes are set dynamically based on the
;             following directives. With this process management, there will be
;             always at least 1 children.
;             pm.max_children      - the maximum number of children that can
;                                    be alive at the same time.
;             pm.start_servers     - the number of children created on startup.
;             pm.min_spare_servers - the minimum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is less than this
;                                    number then some children will be created.
;             pm.max_spare_servers - the maximum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is greater than this
;                                    number then some children will be killed.
;  ondemand - no children are created at startup. Children will be forked when
;             new requests will connect. The following parameter are used:
;             pm.max_children           - the maximum number of children that
;                                         can be alive at the same time.
;             pm.process_idle_timeout   - The number of seconds after which
;                                         an idle process will be killed.
; Note: This value is mandatory.
pm = static
; The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
; This value sets the limit on the number of simultaneous requests that will be
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
; CGI. The below defaults are based on a server without much resources. Don't
; forget to tweak pm.* to fit your needs.
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
; Note: This value is mandatory.
pm.max_children = 2
; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.start_servers = 2
; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 1
; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 3
/etc/nginx/conf/nginx.conf
#
# #user http;
# worker_processes  2;
#
# #error_log  logs/error.log;
# error_log  /var/log/nginx/error.log;
# #error_log  logs/error.log  notice;
# #error_log  logs/error.log  info;
#
# #pid        logs/nginx.pid;
# pid        /var/run/nginx.pid;
#
# events {
#     worker_connections  1024;
#     use epoll;
# }
#
#
# http {
#     include       mime.types;
#     default_type  application/octet-stream;
#
#     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#     #                  '$status $body_bytes_sent "$http_referer" '
#     #                  '"$http_user_agent" "$http_x_forwarded_for"';
#
#     #access_log  logs/access.log  main;
#
#     sendfile        on;
#     #tcp_nopush     on;
#
#     #keepalive_timeout  0;
#     keepalive_timeout  65;
#
#     #gzip  on;
#
#     server {
#         listen       80;
#         server_name  localhost;
#
#         #charset koi8-r;
#
#         #access_log  logs/host.access.log  main;
#
#         location / {
#             root   html;
#             index  index.html index.htm;
#         }
#
#         #error_page  404              /404.html;
#
#         # redirect server error pages to the static page /50x.html
#         #
#         error_page   500 502 503 504  /50x.html;
#         location = /50x.html {
#             root   html;
#         }
#
#         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
#         #
#         #location ~ \.php$ {
#         #    proxy_pass   http://127.0.0.1;
#         #}
#
#         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#         #
#         #location ~ \.php$ {
#         #    root           html;
#         #    fastcgi_pass   127.0.0.1:9000;
#         #    fastcgi_index  index.php;
#         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#         #    include        fastcgi_params;
#         #}
#
#         # deny access to .htaccess files, if Apache's document root
#         # concurs with nginx's one
#         #
#         #location ~ /\.ht {
#         #    deny  all;
#         #}
#     }
#
#
#     # another virtual host using mix of IP-, name-, and port-based configuration
#     #
#     #server {
#     #    listen       8000;
#     #    listen       somename:8080;
#     #    server_name  somename  alias  another.alias;
#
#     #    location / {
#     #        root   html;
#     #        index  index.html index.htm;
#     #    }
#     #}
#
#
#     # HTTPS server
#     #
#     #server {
#     #    listen       443;
#     #    server_name  localhost;
#
#     #    ssl                  on;
#     #    ssl_certificate      cert.pem;
#     #    ssl_certificate_key  cert.key;
#
#     #    ssl_session_timeout  5m;
#
#     #    ssl_protocols  SSLv2 SSLv3 TLSv1;
#     #    ssl_ciphers  HIGH:!aNULL:!MD5;
#     #    ssl_prefer_server_ciphers   on;
#
#     #    location / {
#     #        root   html;
#     #        index  index.html index.htm;
#     #    }
#     #}
#
# }
worker_processes 2;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
events {
	worker_connections  1024;
	use epoll;
}
http {
	include		/etc/nginx/conf/mime.types;
	default_type	application/octet-stream;
	upstream backend {
		server 127.0.0.1:9000;
	}
	upstream backendrtorrent {
		server unix:/home/z/.rtorrent.sock;
	}
	sendfile		on;
	keepalive_timeout	65;
	include /etc/nginx/conf/sites-enabled/*;
	include /etc/nginx/conf/conf.d/*;
}
/etc/nginx/conf/sites-available/rutorrent.notebook
server {
listen 80;
server_name localhost;

access_log /srv/http/nginx/rutorrent.notebook/logs/access.log;
error_log /srv/http/nginx/rutorrent.notebook/logs/errors.log;

location / {
root /srv/http/nginx/rutorrent.notebook/htdocs;
index index.php index.html index.htm;
}

location /RPC2 {
include /etc/nginx/conf/scgi_params;
scgi_pass backendrtorrent;
}

location ~ /\.ht {
deny all;
}

location ~* \.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
root /srv/http/nginx/rutorrent.notebook/htdocs;
access_log off;
expires 30d;
}

location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/http/nginx/rutorrent.notebook/htdocs$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
Каталоги /srv/http/nginx/rutorrent.notebook/logs и /srv/http/nginx/rutorrent.notebook/htdocs - существуют.
/etc/hosts
#
# /etc/hosts: static lookup table for host names
#

#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost notebook rutorrent.notebook
::1 localhost.localdomain localhost

# End of file
~/.rtorrent.rc
scgi_local = /home/z/.rtorrent.sock
scgi_port = 127.0.0.1:9000

max_memory_usage = 268435456

system.file_allocate.set = yes

#done_fg_color = 2

#done_bg_color = 0

#active_fg_color = 4

#active_bg_color = 0

#максимальная скорость загрузки
download_rate = 250

#максимальная скорость отдачи. 0 - не ограничена
upload_rate = 0

#каталог для сохранения закачек или откуда буду сидироваться торренты.
directory = /home/z/Torrents

#каталог куда будет сохраняться состояние торрентов. Здесь, в этом примере, они сохраняются в папку session
session = /home/torrent/session
#session = /home/z/Torrents/.session

#rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent файлы и если они есть то ставит их на закачку
schedule = watch_directory,5,60,load_start=/home/torrent/torrents/*.torrent

#номер порта (или нескольких портов) который открывает клиент для обмена данными
port_range = 6881-6881

#случайный выбор порта для обмена данными. В данном случае он отключён
port_random = no

#проверять хэш торрента после закачки
check_hash = yes

#использовать udp
use_udp_trackers = yes

#сохранять сессию
session_save = yes

encryption = allow_incoming,try_outgoing,enable_retry,prefer_plaintext

dht = auto

dht_port = 6881

peer_exchange = yes

#минимальное число пиров на торрент
min_peers = 1

#максимальное число пиров на торрент
max_peers = 2000

#делает читадельным лог (вызывается по L)
handshake_log = yes

# Принудительно устанавливает кодировку UTF-8 для xmlrpc.
# Рекомендуется для устранения проблем при использовании в
# наименованиях торрентов символов кириллицы. Актуально для
# GUI, работающих через xmlrpc.
encoding_list = UTF-8

#
#scgi_port = localhost:5000
/etc/rc.d/rtorrentd
#!/usr/bin/env bash

. /etc/rc.conf
. /etc/rc.d/functions

rtorrent_user=“z”
rtorrent_socket=“/home/z/.rtorrent.sock”

case “$1” in
start)
stat_busy “Starting rtorrent”
if ; then
rm $rtorrent_socket
fi
su $rtorrent_user -c ‘LANG=uk_UA.UTF-8 screen -d -m -S rtorrent rtorrent’ &> /dev/null
if ; then
stat_fail
else
while
do
printf “%10s \r” waiting
done
chmod 666 $rtorrent_socket
add_daemon rtorrent
stat_done
fi
;;
stop)
stat_busy “Stopping rtorrent”
killall -w -s 2 /usr/bin/rtorrent &> /dev/null
if ; then
rm $rtorrent_socket
fi
if ; then
stat_fail
else
rm_daemon rtorrent
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo “usage: $0 {start|stop|restart}”
esac
exit 0
Запуск rtorrent.
sudo /etc/rc.d/rtorrentd start
Пароль:
:: Starting rtorrent
waiting
sudo screen -r
There is no screen to be resumed.
Web-интерфейс пишет:
Нет связи с rTorrent. Проверьте, запущен ли он. Проверьте, что параметры $scgi_port и $scgi_host в файле config.php совпадают со значением переменной scgi_port в файле конфигурации rTorrent.
/srv/http/nginx/rutorrent.notebook/htdocs/conf/config.php
<?php
// configuration parameters

// for snoopy client
@define('HTTP_USER_AGENT', ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9) Gecko/2008052906 Firefox/3.0’, true);
@define('HTTP_TIME_OUT', 30, true); // in seconds
@define('HTTP_USE_GZIP', true, true);
$httpIP = null; // IP string. Or null for any.

@define('RPC_TIME_OUT', 5, true); // in seconds

@define('LOG_RPC_CALLS', false, true);
@define('LOG_RPC_FAULTS', true, true);

// for php
@define('PHP_USE_GZIP', false, true);
@define('PHP_GZIP_LEVEL', 2, true);

$do_diagnostic = true;
$log_file = ‘/tmp/errors.log’; // path to log file (comment or leave blank to disable logging)

$saveUploadedTorrents = true; // Save uploaded torrents to profile/torrents directory or not
$overwriteUploadedTorrents = false; // Overwrite existing uploaded torrents in profile/torrents directory or make unique name

$topDirectory = ‘/’; // Upper available directory. Absolute path with trail slash.
$forbidUserSettings = false;

$scgi_port = 127.0.0.1:9000;
$scgi_host = “unix:///home/z/.rtorrent.sock”;

// For web->rtorrent link through unix domain socket
// (scgi_local in rtorrent conf file), change variables
// above to something like this:
//
// $scgi_port = 0;
// $scgi_host = “unix:///tmp/rpc.socket”;

$XMLRPCMountPoint = “/RPC2”; // DO NOT DELETE THIS LINE!!! DO NOT COMMENT THIS LINE!!!

$pathToExternals = array(
“php” => ‘', // Something like /usr/bin/php. If empty, will be found in PATH.
“curl” => ’/usr/bin/curl', // Something like /usr/bin/curl. If empty, will be found in PATH.
“gzip” => ‘', // Something like /usr/bin/gzip. If empty, will be found in PATH.
“id” => ’', // Something like /usr/bin/id. If empty, will be found in PATH.
“stat” => ‘/usr/bin/stat’, // Something like /usr/bin/stat. If empty, will be found in PATH.
);

$localhosts = array( // list of local interfaces
“127.0.0.1”,
“localhost”,
);

$profilePath = ‘../share’; // Path to user profiles
$profileMask = 0777; // Mask for files and directory creation in user profiles.
// Both Webserver and rtorrent users must have read-write access to it.
// For example, if Webserver and rtorrent users are in the same group then the value may be 0770.

?>
Вопросы:
1. Что у меня неправильно в конфигах?
2. Как сделать запуск от юзера, а не от рута?
3. Может лучше поставить lighttpd вместо nginx?
Нужно умереть молодым и сделать это как можно позже.
работает в особых действиях
Работает, я знаю. Вот как сделать, чтобы имя создаваемого файла md5 было “старый_файл.md5” и файл создавался в той же директории, где и проверяемый?
Нужно умереть молодым и сделать это как можно позже.
Пробовал. Не работает.
Нужно умереть молодым и сделать это как можно позже.
2 Leonardo19
Благодарю, но не помогло. Похожий вариант у меня есть
zenity --info --title="Check md5 for %n" --text="$(md5sum %f)" | zenity --progress --percentage="40" --auto-kill --auto-close --title="Checksum utility" --text="Calculating md5sum for %n"
Скрипт от Наутилуса записывает суммы в текстовый файл, и даже есть возможность выбирать файл или папку считать. Потом другим скриптом можно проверить на совпадение. Это актуально, так как много копирую на разные жесткие диски, были случаи, когда по размеру вроде как сходится файл, но оказывался поврежденным.
Нашел еще интересный вариант, но только в командной строке:
find . -type f -exec md5sum '{}' \; > ~/md5sums 
а эта команда для проверки:
md5sum -c ~/md5sums
Вот прикрутить бы эти две команды к Тунару.
Нужно умереть молодым и сделать это как можно позже.
Как можно приспособить скрипты от Nautilus к Thunar?
Пробовал просто копировать скрипты в папку ~/.config/Thunar/scripts
Потом прописал в “Особых действиях” (к примеру, вычисление и запись MD5 в файл вида “старый_файл.md5”):
Команда: /home/z/.config/Thunar/scripts/Security/Mkmd5 %N
Но скрипт не сработал.
Вот код скрипта:
#!/bin/bash
#########################################################
#							#
# This are NScripts v3.5				#
#							#
# Licensed under the GNU GENERAL PUBLIC LICENSE 3	#
#							#
# Copyright 2007 - 2008 Christopher Bratusek		#
#							#
#########################################################
echo $NAUTILUS_SCRIPT_SELECTED_URIS > ~/.config/Thunar/temp_mkmd5_list
filesamount=$(wc -l ~/.config/Thunar/temp_mkmd5_list | awk '{print $1}')
step=$(($((100))/$(($filesamount))))
for file in $(cat ~/.config/Thunar/temp_mkmd5_list); do
if [[ -d "$file" ]]; then
exit
fi
percent=$(($(($percent))+$(($step))))
file_name=$(echo $file | sed -e 's/file:\/\///g' -e 's/\%20/\ /g')
filename=$(echo $file | sed -e 's/.*\///g' -e 's/\%20/\ /g')
(md5sum "$file_name" > "$filename.md5") | zenity --progress --percentage $percent --auto-close
if [[ -a $filename.md5 ]]; then
	echo -e "\n========================================================" >> ~/.config/Thunar/mkmd5_result
	echo "MD5-Sum for $filename successfully created" >> ~/.config/Thunar/mkmd5_result;
else	echo -e "\n========================================================" >> ~/.config/Thunar/mkmd5_result
	echo "MD5-Sum for $filename not created" >> ~/.config/Thunar/mkmd5_result;
fi
done
zenity --text-info --title "Result" --width640 --height=480 --filename=$HOME/.config/Thunar/mkmd5_result
rm -f ~/.config/Thunar/temp_mkmd5_list ~/.config/Thunar/mkmd5_result
При чём в Наутилусе скрипт работет!
Нужно умереть молодым и сделать это как можно позже.