Hogyan állítsuk be transmission alatt a maximum aktív torrentek számát?

Nyomtatóbarát változatOldal küldése ismerősnek

Találtam egy scriptet amit a cronnal ütemezve elméletileg lekorlátozza a maximum torrentek számát.
Szükséges hozzá a transmission-cli is a működéséhez.

opkg update && opkg install transmission-cli

A script letölthető a csatolt állományok közül is.

#!/bin/sh

# Configuration
REMOTE="/usr/bin/transmission-remote"
USERNAME="felhasznalonev_helye"
PASSWORD="jelszo_helye"
MAXDOWN="maximum_letoltesek_szama"
MAXACTIVE="maximum_osszes_fel/le_toltes_szama"
CONFIG="/config_fajl_eleresi_utvonala/settings.json"

# *************
# Set-up variables
CMD="$REMOTE --auth $USERNAME:$PASSWORD"
LOGCMD="/usr/bin/logger -t transmission-queue "
MAXRATIO=$(cat $CONFIG | grep \"ratio-limit\":)
MAXRATIO=${MAXRATIO#*\"ratio-limit\": }
MAXRATIO=${MAXRATIO%*, }

# *************
# deal with downloads
DOWNACTIVE="$($CMD -l | tail +2 | grep -v -e 100% -e Sum -e Stopped | wc -l)"
if [ $MAXDOWN -lt $DOWNACTIVE ]; then
    DOWNTOSTOP="$($CMD -l | tail +2 | grep -v -e 100% -e Sum -e Stopped | \
        tail -n $(expr $DOWNACTIVE - $MAXDOWN) | awk '{ print $1; }')"
    for ID in $DOWNTOSTOP; do
        NAME="$($CMD --torrent $ID --info | grep Name:)"
        $LOGCMD "<<< $ID: ${NAME#*Name: }"
        $CMD --torrent $ID --stop >> /dev/null 2>&1
    done
else
    [ $(expr $MAXDOWN - $DOWNACTIVE) -gt 0 ] && (
    DOWNINACTIVE="$($CMD -l | tail +2 | grep -v 100% | grep Stopped | wc -l)"
    [ $DOWNINACTIVE -gt 0 ] && (
        DOWNTOSTART="$($CMD -l | tail +2 | grep -v 100% | grep Stopped | \
            head -n $(expr $MAXDOWN - $DOWNACTIVE) | awk '{ print $1; }')"
        for ID in $DOWNTOSTART; do
            NAME="$($CMD --torrent $ID --info | grep Name:)"
            $LOGCMD ">>> $ID: ${NAME#*Name: }"
            $CMD --torrent $ID --start >> /dev/null 2>&1
        done
        )
    )
fi
# Then deal with total active
ACTIVE="$($CMD -l | tail +2 | grep -v Sum | grep -v Stopped | wc -l)"
if [ $MAXACTIVE -lt $ACTIVE ]; then
    TOSTOP="$($CMD -l | tail +2 | grep 100% | grep -v Stopped | \
        tail -n $(expr $ACTIVE - $MAXACTIVE) | awk '{ print $1; }')"
    for ID in $TOSTOP; do
        NAME="$($CMD --torrent $ID --info | grep Name:)"
        $LOGCMD "<<< $ID: ${NAME#*Name: }"
        $CMD --torrent $ID --stop >> /dev/null 2>&1
    done
else
    [ $(expr $MAXACTIVE - $ACTIVE) -gt 0 ] && (
    SEEDINACTIVE="$($CMD -l | tail +2 | grep 100% | grep Stopped | \
        awk -v ratio=$MAXRATIO '{ if (strtonum(substr($0,52,4)) < ratio) print $0 ;}' | wc -l)"
    [ $SEEDINACTIVE -gt 0 ] && (
        TOSTART="$($CMD -l | tail +2 | grep 100% | grep Stopped | \
            awk -v ratio=$MAXRATIO '{ if (strtonum(substr($0,52,4)) < ratio) print $0 ;}' | \
            head -n $(expr $MAXACTIVE - $ACTIVE) | awk '{ print $1; }')"
        for ID in $TOSTART; do
            NAME="$($CMD --torrent $ID --info | grep Name:)"
            $LOGCMD ">>> $ID: ${NAME#*Name: }"
            $CMD --torrent $ID --start >> /dev/null 2>&1
        done
        )
    )
fi

A configuration részt mindenki szerkessze át olyanra, amilyenre kell. 

A fájlt mentsük egy tetszőleges helyre. Majd tegyük futtathatóvá.

chmod a+x script

Próbáljuk ki, hogy működik-e.

./script

Majd ütemezzük!

crontab -e

És másoljuk bele a következő sort! Ez 5 percenként futtatja a scriptet.

*/5 * * * * /home/script

Mentsük el! Vi alatt:

ESC + :wq! + ENTER

Sikerült megoldani, működik 100%-osan.
Elsősorban openwrt alá készült.

Tóth Szabi

Szia! Le akarom futtatni, de

Szia!

Le akarom futtatni, de az utolsó "fi"-re hivatkozik hogy:

/5-5torrent.sh: line 63: syntax error: unexpected "fi"

Mi a hiba?

Köszi előre is.

Beküldő: crackjack. Beküldés időpontja: cs, 2011/04/14 - 00:58.
Belekerült még egy fi és

Belekerült még egy fi és azért akadt meg. Mostmár lefut de nem megy újabb hibákat ír ki.

sh: 5/5: bad number <<<--- ez a max aktív torrentek száma.
expr: non-numeric argument
sh: 0: unknown operand

Beküldő: crackjack. Beküldés időpontja: cs, 2011/04/14 - 15:35.
Okés, jó már, csak elírtam az

Okés, jó már, csak elírtam az összes aktív torrent számot.

Beküldő: crackjack. Beküldés időpontja: cs, 2011/04/14 - 15:38.