facebooktwittertwitterRSS csatorna

Weblapkészítést, keresőoptimalizálást vállalok. Bővebben...

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

Speeedfire, 2010-05-16 22:45:05

 

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

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

Csatolmányok
ÁllományMéret
122-scrip2 KB

(#1) crackjack 8 éve
crackjack
Hsz: 3
(Tag)

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.


(#2) crackjack 8 éve
crackjack
Hsz: 3
(Tag)

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


(#3) crackjack 8 éve
crackjack
Hsz: 3
(Tag)

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


Szólj hozzá:

A hozzászóláshoz belépés/regisztráció szükséges.