Installing Transmission through Entware - XIYO/asuswrt-merlin.ng-kr GitHub Wiki

์†Œ๊ฐœ

Asus์˜ DownloadMaster๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Transmission ๋ฐ OpenSSL์˜ ์˜ค๋ž˜๋œ ๋ฒ„์ „, ๋Œ€์—ญํญ์„ ๋ชจ๋‘ ์ฐจ์ง€ํ•˜๋Š” aMule์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค...

Download Master๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋Œ€์‹  Entware๋ฅผ ํ†ตํ•ด Transmission์„ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ์ „๋ฐ˜์ ์œผ๋กœ ๋” ๋‚˜์€ ์„ฑ๋Šฅ
  2. ์ž์„ ๋งํฌ ์ง€์›
  3. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ aMule์ด๋‚˜ NZBGet์— ๊ด€์‹ฌ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ถˆํ•„์š”ํ•œ ๋ถ€๋ถ„์ด ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ์„ค์ •

์ด ์„ค์ •์—์„œ๋Š” ๋””์Šคํฌ๊ฐ€ /mnt/sda1/์— ๋งˆ์šดํŠธ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (์˜ˆ๋ฅผ ๋“ค์–ด, ๋งŒ์•ฝ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋””์Šคํฌ๊ฐ€ /mnt/sdb1์— ๋งˆ์šดํŠธ๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ฒฝ๋กœ๋ฅผ ํ•„์š”์— ๋งž๊ฒŒ ์กฐ์ •ํ•˜์‹ญ์‹œ์˜ค).

๋˜ํ•œ ๋””์Šคํฌ๊ฐ€ ์ด๋ฏธ Ext2 ๋˜๋Š” Ext3์œผ๋กœ ํฌ๋งท๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋””์Šคํฌ๋ฅผ ๋‹ค์‹œ ํฌ๋งทํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์›น์—์„œ ์ฐพ์•„๋ณด์„ธ์š”.

Entware ์„ค์ • ๋ฐ nano ํŽธ์ง‘๊ธฐ ์„ค์น˜ (vi ํŽธ์ง‘๊ธฐ๋ฅผ ์ด๋ฏธ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ):

opkg install nano
```## ์„ค์น˜
Transmission์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

```shell
opkg install transmission-web transmission-daemon
opkg install transmission-remote transmission-daemon

์ผ๋ถ€ https ํŠธ๋ž˜์ปค์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฆ์„œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค:

opkg install ca-bundle ca-certificates

๋ฐ์ดํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค (์›ํ•˜๋Š” ๋Œ€๋กœ ์กฐ์ •ํ•˜์‹ญ์‹œ์˜ค):

mkdir /mnt/sda1/Torrent/
mkdir /mnt/sda1/Torrent/Incomplete
mkdir /mnt/sda1/Torrent/Watch
mkdir /mnt/sda1/Torrent/Completed

Transmission์ด ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ด ์•„๋‹Œ์ง€ ํ™•์ธํ•œ ํ›„ ์„ค์ •์„ ํŽธ์ง‘ํ•˜์‹ญ์‹œ์˜ค:

/opt/etc/init.d/S88transmission stop
nano -w /opt/etc/transmission/settings.json

๋‹ค์Œ ๊ฒฝ๋กœ๋ฅผ ์กฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

"download-dir": "/mnt/sda1/Torrent/Completed",
"watch-dir": "/mnt/sda1/Torrent/Watch",
"incomplete-dir": "/mnt/sda1/Torrent/Incomplete",

๋˜ํ•œ ์›น ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์— ์•”ํ˜ธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค:

"rpc-authentication-required": true,
"rpc-username": "admin",
"rpc-password": "yourpassword",

์•”ํ˜ธ๋Š” Transmission์ด ์ฒ˜์Œ ์‹คํ–‰๋  ๋•Œ ํ•ด์‹œ๋กœ ์ €์žฅ๋˜๋ฏ€๋กœ ์—ฌ๊ธฐ์—์„œ ํ‰๋ฌธ์œผ๋กœ ์ž…๋ ฅํ•ด๋„ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.## ๋ฐฉํ™”๋ฒฝ ๊ตฌ์„ฑ ๋ฐฉํ™”๋ฒฝ์—์„œ ํ•„์š”ํ•œ ํฌํŠธ๋ฅผ ์—ด์–ด์ฃผ๋Š” ์‚ฌ์šฉ์ž ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ • ํŒŒ์ผ(settings.json)์—์„œ ๊ธฐ๋ณธ๊ฐ’์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์„ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

nano -w /jffs/scripts/firewall-start

๋‹ค์Œ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค (์ด๋ฏธ ๊ธฐ์กด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ์ค„์€ ๋ฌด์‹œํ•˜์‹ญ์‹œ์˜ค):

#!/bin/sh
iptables -I INPUT -p tcp --destination-port 51413 -j ACCEPT
iptables -I INPUT -p udp --destination-port 51413 -j ACCEPT

๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค:

chmod a+rx /jffs/scripts/firewall-start

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

๋ชจ๋“  ์„ค์ •์ด ์ด์ œ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰์‹œ ์ˆ˜๋™์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ (๋ถ€ํŒ… ์‹œ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋จ):

/jffs/scripts/firewall-start
/opt/etc/init.d/S88transmission start

๋‹ค์Œ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: http://router.asus.com:9091/transmission### ์ด๋ฉ”์ผ ์•Œ๋ฆผ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์ด ๋А๋ฆฐ ๊ฒฝ์šฐ ํ† ๋ ŒํŠธ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์•Œ๋ฆผ์„ ๋ฐ›๊ณ  ์‹ถ๋‹ค๋ฉด, ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ _tmail.sh_๋กœ ๋ถ€๋ฅด๊ณ  /jffs/scripts์— ์ €์žฅํ•˜์‹ญ์‹œ์˜ค. ๋จผ์ € SMTP, FROM, TO, USER ๋ฐ PASS๋ฅผ ์ž์‹ ์˜ ์ž๊ฒฉ ์ฆ๋ช…์œผ๋กœ ์ฑ„์šฐ์ง€ ์•Š์œผ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ๋งŽ์€ ํ† ๋ ŒํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ ๊ท€์ฐฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#!/bin/sh

SMTP="your-smtp-server:587"
FROM="your-email-address"
TO="your-email-address"
USER="email-user-name"
PASS="email-password"
FROMNAME="Asus Router"
torrent_name="$TR_TORRENT_NAME"

echo "Subject: ๋‹ค์šด๋กœ๋“œ ์•Œ๋ฆผ!" >/tmp/tmail.txt
echo "From: \\"$FROMNAME\\"<$FROM>" >>/tmp/tmail.txt
echo "Date: `date -R`" >>/tmp/tmail.txt
echo "" >>/tmp/tmail.txt
echo Transmissionbt๊ฐ€ `date +\%d/\%m/\%Y`์— `date +\%T`์— "$TR_TORRENT_NAME" ๋‹ค์šด๋กœ๋“œ๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. >>/tmp/tmail.txt
echo "" >>/tmp/tmail.txt
echo "์นœ์ ˆํ•œ ๋ผ์šฐํ„ฐ." >>/tmp/tmail.txt
echo "" >>/tmp/tmail.txt

cat /tmp/tmail.txt | /usr/sbin/sendmail -S"$SMTP" -f"$FROM" $TO -au"$USER" -ap"$PASS"

rm /tmp/tmail.txt

Transmission ๋ฐ๋ชฌ์„ ์ค‘์ง€ํ•˜๊ณ , /opt/etc/transmission/settings.json ํŒŒ์ผ์—์„œ ๋‹ค์Œ ๋‘ ์ค„์„ ๋ณ€๊ฒฝํ•œ ๋‹ค์Œ, Transmission์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/jffs/scripts/tmail.sh",

HTML ํ˜•์‹์˜ ์ด๋ฉ”์ผ

#!/bin/sh

SMTP="your-smtp-server:587"
FROM="your-email-address"
TO="your-email-address"
USER="email-user-name"
PASS="email-password"
FROMNAME="Asus Router"
torrent_name="$TR_TORRENT_NAME"
torrent_version="$TR_APP_VERSION"

logger -t "$0" "Mail sent, about "$TR_TORRENT_NAME""

echo MIME-Version: 1.0 >/tmp/tmail.html
echo Content-Type: text/html >>/tmp/tmail.html
echo "Subject: ๋‹ค์šด๋กœ๋“œ ์•Œ๋ฆผ" >>/tmp/tmail.html
echo "From: \\"$FROMNAME\\"<$FROM>" >>/tmp/tmail.html
echo "Date: `date -R`" >>/tmp/tmail.html
echo "" >>/tmp/tmail.html
echo "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">" >>/tmp/tmail.html
echo "<html>" >>/tmp/tmail.html
echo "<head><title></title>" >>/tmp/tmail.html
echo "</head>" >>/tmp/tmail.html

echo "<p>Transmissionbt v"$torrent_version"๊ฐ€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค:</p>" >>/tmp/tmail.html
echo "<p><b>"$TR_TORRENT_NAME"<b></p>" >>/tmp/tmail.html
echo "<p>`date +\%d/\%m/\%Y`์— `date +\%T`์—</p>" >>/tmp/tmail.html
echo "" >>/tmp/tmail.html
echo "<p>๋ฉ‹์ง„ ๋ผ์šฐํ„ฐ์ž…๋‹ˆ๋‹ค.</p>" >>/tmp/tmail.html
echo "<a href="http://tinypic.com?ref=2zod5ja" target="_blank"><img src="http://i40.tinypic.com/2zod5ja.png" border="0" alt="Image and video hosting by TinyPic"></a>" >>/tmp/tmail.html
echo "</body>" >>/tmp/tmail.html
echo "</html>" >>/tmp/tmail.html

cat /tmp/tmail.html | /usr/sbin/sendmail -S"$SMTP" -f"$FROM" $TO -au"$USER" -ap"$PASS"

rm /tmp/tmail.html

๋ฐ›์€ ์ด๋ฉ”์ผ์˜ ์˜ˆ์‹œ: email

๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค.

๋‹ค๋ฅธ ๊ฐ€์ด๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.## Transmission์— ์ถ”๊ฐ€ ํŠธ๋ž˜์ปค ์ถ”๊ฐ€ํ•˜๊ธฐ ์ด ์ž‘์€ ์Šคํฌ๋ฆฝํŠธ๋Š” ํ˜„์žฌ ํ™œ์„ฑ ํ† ๋ ŒํŠธ๋ฅผ ์ถ”๊ฐ€ ํŠธ๋ž˜์ปค๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ๊ฐ€ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ์„ค์ •.json์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

"script-torrent-added-filename": "/opt/bin/add_trackers.sh",

Transmission ์›๊ฒฉ ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:

opkg install transmission-remote-openssl
#!/bin/sh
# Transmission ์ž๊ฒฉ ์ฆ๋ช… ๊ฐ€์ ธ์˜ค๊ธฐ
auth=                                            #(์˜ˆ: username:password)

add_trackers () {
    torrent_hash=$1
    base_url='https://torrentz2.eu'
    pattern='announcelist_[0-9]+'

    announce_list=`wget -qO - ${base_url}/${torrent_hash} | grep -Eo "${pattern}"`

    if [ -z "$announce_list" ] ; then
        echo '์ถ”๊ฐ€ ํŠธ๋ž˜์ปค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค, ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.'
        continue
    fi

    echo "$torrent_hash์— ๋Œ€ํ•œ ํŠธ๋ž˜์ปค ์ถ”๊ฐ€ ์ค‘..."

    for tracker in $(wget -qO - ${base_url}/${announce_list}) ; do
        echo -n "* ${tracker}..."
        if [ -z "$(transmission-remote  --auth=$auth --torrent ${torrent_hash} -td ${tracker} | grep 'success')" ]; then
            echo ' ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.'
        else
            echo ' ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.'
        fi
    done
}

# ํ™œ์„ฑ ํ† ๋ ŒํŠธ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ
ids="$(transmission-remote --auth=$auth --list | grep -vE 'Seeding|Stopped' | grep '^ ' | awk '{ print $1 }')"

for id in $ids ; do
    echo "# ํ† ๋ ŒํŠธ #$id ์ฒ˜๋ฆฌ ์ค‘..."
    hash="$(transmission-remote --auth=$auth  --torrent $id --info | grep '^  Hash: ' | awk '{ print $2 }')"
    add_trackers $hash
done
โš ๏ธ **GitHub.com Fallback** โš ๏ธ