-
IT café
ASUS WL-500G Premium
Új hozzászólás Aktív témák
-
ecaddict
senior tag
Ma már többnyire én is rtorrent-et használok, de a Tranmission stabilitásban és egyszerűségben még mindig vezet. Ha valamit biztosan le akarok tölteni akkor többnyire Transmission, ha valamit seedelek akkor rtorrent. Az rtorrent CPU használata és flexibilitása verhetettlen.
Korábban már közreadtam a konfigjaim azóta csináltam pár apró javítást íme újra:
/opt/etc/rtorrent.confmin_peers = 20
max_peers = 40
max_uploads = 5
download_rate = 360
upload_rate = 90
directory = /mnt/protected/torrent/work/
schedule = watch_directory,5,5,load_start=/mnt/protected/torrent/dl/*.torrent
schedule = untied_directory,5,5,stop_untied=
scgi_port = localhost:5000
session = /mnt/protected/torrent/session
port_range = 65530-65532
port_random = no
#check_hash = no
#use_udp_trackers = yes
schedule = ratio,30,60,stop_on_ratio=200
# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
encryption = try_outgoing
# UTF8
encoding_list = UTF-8
# disable/off/auto/on
#dht = auto
#UDP port to use for DHT.
#dht_port = 6881
schedule = log,180,180,"execute=/opt/etc/rtorrlog,$get_down_rate=,$get_up_rate="Ebben is és a többi itt leírt fájlban le kell cserélni a /mnt/protected könyvtárat arra ahova az rtorrent könyvtárát tervezed.
Az encoding_list az ékezetes karakterekért.
A schedule pedig meghívja az /opt/etc/rtorrlog scriptet (chmod u+x) három percenként a le és fel byte/s-el. A script a system logba ír hasonlóan mint a Transmission azaz amikor nem fut a a javascript-es kliens utólag akkor is láthatjuk mi történt./opt/etc/rtorrlog
#!/bin/sh
LD=`uptime | sed 's/.*average: //' | awk '{print($2)}' | sed "s/,//"`
ED=`date +%s`
DLK=`expr $1 / 1000`
ULK=`expr $2 / 1000`
DLB=`expr $1 % 1000`
ULB=`expr $2 % 1000`
logger -t rtorrents "$ED 1 dl $DLK.$DLB ul $ULK.$ULB ld $LD"A javascript kliens letölthető:
[link]
Valahova a lighttpd által látott helyre kell kicsomagolni.A szervíz inditó script:
/opt/etc/init.d/S99rtorrent#!/bin/sh
CONFIG="/opt/etc/rtorrent.conf"
OPTIONS="-n -o import=${CONFIG}"
BASE="/opt/share/torrent"
SRNAME=rtorrent
PATH=/opt/bin:/opt/sbin:/usr/bin:/sbin:/bin:/usr/sbin
NAME=rtorrent
EXEC=/opt/bin/$NAME
EXSC=/opt/bin/screen
checkcnfg() {
if ! [ -x $EXSC ]; then
logger -t $NAME "screen not found."
return 3
fi
exists=0
for i in `echo "$PATH" | tr ':' '\n'` ; do
if [ -f $i/$NAME ] ; then
exists=1
break
fi
done
if [ $exists -eq 0 ] ; then
logger -t $NAME "cannot find $NAME binary in PATH $PATH"
exit 3
fi
if ! [ -r "${CONFIG}" ] ; then
logger -t $NAME "cannot find readable config $CONFIG"
exit 3
fi
session=`getsession "$CONFIG"`
if ! [ -d "${session}" ] ; then
logger -t $NAME "cannot find readable session directory $session from config $CONFIG"
exit 3
fi
}
getsession() {
session=`awk '/^[[:space:]]*session[[:space:]]*=[[:space:]]*/{print($3)}' "$CONFIG"`
echo $session
}
getprange() {
ports=`awk '/^[[:space:]]*port_range[[:space:]]*=[[:space:]]*/{print($3)}' "$CONFIG" | sed "s/-/ /"`
echo $ports
}
getdhtport() {
dht_port=`awk '/^[[:space:]]*dht_port[[:space:]]*=[[:space:]]*/{print($3)}' "$CONFIG"`
echo $dht_port
}
fwopen() {
DHT_PORT=`getdhtport "$CONFIG"`
iptables -D INPUT -j DROP
PORTS=$(seq `getprange "$CONFIG"`)
for P in $PORTS; do
iptables -I INPUT -i vlan1 -p tcp --syn --dport $P -j ACCEPT
done
if [ $DHT_PORT ]; then
iptables -I INPUT -i vlan1 -p tcp --dport $DHT_PORT -j ACCEPT
fi
iptables -A INPUT -j DROP
}
fwclose() {
DHT_PORT=`getdhtport "$CONFIG"`
PORTS=$(seq `getprange "$CONFIG"`)
for P in $PORTS; do
iptables -D INPUT -i vlan1 -p tcp --syn --dport $P -j ACCEPT
done
if [ $DHT_PORT ]; then
iptables -D INPUT -i vlan1 -p tcp --dport $DHT_PORT -j ACCEPT
fi
}
d_start() {
[ -d "${BASE}" ] && cd "${BASE}"
fwopen
stty stop undef && stty start undef
$EXSC -ls | grep ".$SRNAME[[:space:]]" > /dev/null || $EXSC -dm -S $SRNAME
# without sleep screen may not be sometimes ready to start anything
sleep 3
$EXSC -S "$SRNAME" -X screen nice $EXEC $OPTIONS
for I in 0:3 ; do
if [ -n "`pidof $NAME`" ]; then
logger -t $NAME "Started PID: `pidof $NAME`"
break
fi
sleep 1
done
}
d_stop() {
fwclose
session=`getsession "$CONFIG"`
if ! [ -s ${session}/rtorrent.lock ] ; then
logger -t $NAME "Lock file failed: ${session}/rtorrent.lock"
return
fi
PID=`cat ${session}/rtorrent.lock | awk -F: '{print($2)}' | sed "s/[^0-9]//g"`
if ps -A | grep -sq $PID.*rtorrent ; then # make sure the pid doesn't belong to another process
kill -s INT $PID
logger -t $NAME "Stopped PID: $PID"
sleep 1
for I in 0:5 ; do
PSE=`ps -p $PID | grep "$PID"`
if [ -z "$PSE" ]; then
break
fi
sleep 1
done
fi
SCSTOP=`$EXSC -list | grep "\.$SRNAME" | awk '{print($1)}' | sed "s/\.$SRNAME//"'`
if [ -n "$SCSTOP" ]; then
kill $SCSTOP
logger -t $NAME "Stopped screen: $SCSTOP"
fi
}
checkcnfg
case "$1" in
start)
echo "Starting $NAME"
d_start
echo "."
;;
stop)
echo "Stopping $NAME"
d_stop
echo "."
;;
restart|force-reload)
echo "Restarting $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0A cgi script ami pedig grafikont csinál az rtorrent system logjából (ehhez persze kell a gnuplot
ipkg install gnuplot):
/<web root>/cgi/bin/rtorrent.cgi#!/bin/sh
HTDIR=/mnt/cgi-bin
SYSLOG=/opt/var/log/messages
GNUPLOT=/opt/bin/gnuplot
GNUPLOT_COMMAND=${HTDIR}/rtorrlog.gnuplot
GNUPLOT_DATA=${HTDIR}/rtorrlog.data
GNUPLOT_OUTPUT=${HTDIR}/rtorrlog.png
HTTP_IMG_LOCATION=./rtorrlog.png
TIMEZONE_OFFSET=+7200
_log ()
{
if [ ! -r ${SYSLOG} ]; then
echo "<p>${SYSLOG} not readable. Properly configure syslogd at "
echo "system startup.</p>"
return
fi
echo "<pre>"
sed -n -e "/ rtorrents.*:/{s/.*: \([0-9]\{1,10\}\) [0-9]\{1,\} dl \([0-9.]\{1,\}\) ul \([0-9.]\{1,\}\) ld \([0-9.]\{1,\}\)/\1 \2 -\3 \4/;t data;p;b;:data w ${GNUPLOT_DATA}" -e "}" ${SYSLOG}
echo "</pre>"
if [ ! -x ${GNUPLOT} ]; then
echo "<p>gnuplot: ${GNUPLOT} not found. Properly configure paths "
echo "in $0 for transfer graphing!</p>"
return
fi
echo "<p>Creating graph...</p>"
TZO=${TIMEZONE_OFFSET:-0}
cat > ${GNUPLOT_COMMAND} << __EOF__
set terminal png small size 1024,320
set output '${GNUPLOT_OUTPUT}'
set xdata time
set timefmt "%s"
set format x "%H:%M\n%m/%d"
set ytics nomirror
set y2tics nomirror
set y2range [0:]
set ylabel "rtorrent transfer rate [kB/s]"
set y2label "System load (5 min average)"
set y2tics 1
set xlabel "Time [UTC ${TZO} seconds]"
plot '${GNUPLOT_DATA}' using (\$1+86400+${TZO}):2 title 'download' axis x1y1 with impulses, \
'${GNUPLOT_DATA}' using (\$1+86400+${TZO}):3 title 'upload' with impulses, \
'${GNUPLOT_DATA}' using (\$1+86400+${TZO}):4 axis x1y2 title 'load' with lines
quit
__EOF__
${GNUPLOT} ${GNUPLOT_COMMAND}
echo "<img src=\"${HTTP_IMG_LOCATION}\">"
}
_header ()
{
cat << __EOF__
Content-type: text/html
<html>
<head>
<title>rtorrent</title>
<style type="text/css">
<!--
body {
padding:0;
margin:0;
width: auto;
color: #2f2f4f;
font-family:tahoma;
font-size:11px;
}
input {
padding:3px 7px;
margin:0 4 0 4;
color:#fff;
font-family:tahoma;
font-size:11px;
font-weight:bold;
background-color:#ff0000;
border: 5 px #aaaaaa raised;
}
form {
padding:10px;
margin:0px;
background-color:#FFF9D8;
}
p {
font-size:14px;
padding:0px;
margin:10px;
color:#008000;
}
#footer{
padding:0;
margin:0;
}
//-->
</style>
</head>
<body>
<form action=rtorrent.cgi method=get>
<input type=submit accesskey=c name=ACTION value=log>
<br><br>
__EOF__
}
_footer ()
{
echo "<p>" ; uptime ; echo "</p>"
cat << __EOF__
</body>
</html>
__EOF__
}
query_string=`echo "$QUERY_STRING" | sed 's/&/;/g'`
eval ${query_string}
case "${ACTION}" in
log) _header ; _log ; _footer ;;
*) _header ; _footer ;;
esacA TIMEZONE_OFFSET-et néha változtatni kell...
[ Szerkesztve ]
### RT-N16, WL-500 Oleg optware script ami majdnem mindent feltesz ### ===========> http://wl500g.info/showthread.php?t=23684 <===========
Új hozzászólás Aktív témák
● Olvasd el az összefoglalót!
- iPad Pro 11 WiFi 128GB M1 (3rd gen. 2021) + Apple Pencil 2
- GAMER PC - NZXT - RTX 3060Ti 8GB - i7 7700 - 32GB DDR4 - 500GB M.2 Nvme SSD - 1TB HDD
- BONTATLAN Új Iphone 15 PRO 128-512GB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- ÚJ Bontatlan Macbook Pro 16 M3 Pro MAX 14 30GPU 96GB 2TB Magyar billentyűzet Azonnal átvehető.
- 5% kedvezmény a Cammus szimulátor termékeihez.