1 (29.01.2014 10:18:45 отредактировано lynxvoodoo)

Доброе утро!
Сразу предупрежу что я новичок в Linux, совсем совсем. Так вот, есть роутер asus rt-n65u с кастомной прошивкой основанной на busybox, пытаюсь автоматизировать загрузку торрентов в transmission. Написал скриптик:

#!/bin/sh
wget  -qO - http://lostfilm.tv/rssdd.xml | grep -ioe 'http.*torrent' |  grep -ie 720p.WEB.rus | sed 's/php./php?/g'   > target
for file in `cat target`
do
  wget -P /mnt/transmission/watch  '$file' --header 'Cookie: uid=...; pass=....; usess=.....';
done

но при выполнении выдает ошибку

./torrent_script.sh: line 7: syntax error: EOF in backquote substitution

Бьюсь 3 день, не могу понять почему  bc

2 (29.01.2014 11:30:14 отредактировано moshell)

в баше переменные можно в одинарные кавычки пихать?
а вообще жалуется на обратную кавычку

gu@moshell:~$ ./cati
--2014-01-29 11:28:46--  [url]http://lostfilm.tv/download.php?id=9062&The.Musketeers.S01E02.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся lostfilm.tv (lostfilm.tv)... 5.199.162.25
Подключение к lostfilm.tv (lostfilm.tv)|5.199.162.25|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 302 Moved Temporarily
Адрес: [url]http://www.lostfilm.tv/download.php?id=9062&The.Musketeers.S01E02.720p.WEB.rus.LostFilm.TV.torrent[/url] [переход]
--2014-01-29 11:28:46--  [url]http://www.lostfilm.tv/download.php?id=9062&The.Musketeers.S01E02.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся [url=http://www.lostfilm.tv]www.lostfilm.tv[/url] ([url=http://www.lostfilm.tv]www.lostfilm.tv[/url])... 5.199.162.25
Повторное использование соединения с lostfilm.tv:80.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: нет данных [text/html]
Сохранение в каталог: ««/home/gu/watch/download.php?id=9062&The.Musketeers.S01E02.720p.WEB.rus.LostFilm.TV.torrent»».

    [ <=>                                                                                                                           ] 0           --.-K/s   за 0s

2014-01-29 11:28:46 (0,00 B/s) - «/home/gu/watch/download.php?id=9062&amp;The.Musketeers.S01E02.720p.WEB.rus.LostFilm.TV.torrent» saved [0]

--2014-01-29 11:28:46--  [url]http://lostfilm.tv/download.php?id=9059&amp;Grimm.S03E12.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся lostfilm.tv (lostfilm.tv)... 5.199.162.25
Подключение к lostfilm.tv (lostfilm.tv)|5.199.162.25|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 302 Moved Temporarily
Адрес: [url]http://www.lostfilm.tv/download.php?id=9059&amp;amp;Grimm.S03E12.720p.WEB.rus.LostFilm.TV.torrent[/url] [переход]
--2014-01-29 11:28:46--  [url]http://www.lostfilm.tv/download.php?id=9059&amp;amp;Grimm.S03E12.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся [url=http://www.lostfilm.tv]www.lostfilm.tv[/url] ([url=http://www.lostfilm.tv]www.lostfilm.tv[/url])... 5.199.162.25
Повторное использование соединения с lostfilm.tv:80.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: нет данных [text/html]
Сохранение в каталог: ««/home/gu/watch/download.php?id=9059&amp;Grimm.S03E12.720p.WEB.rus.LostFilm.TV.torrent»».

    [ <=>                                                                                                                           ] 0           --.-K/s   за 0s

2014-01-29 11:28:46 (0,00 B/s) - «/home/gu/watch/download.php?id=9059&amp;Grimm.S03E12.720p.WEB.rus.LostFilm.TV.torrent» saved [0]

--2014-01-29 11:28:46--  [url]http://lostfilm.tv/download.php?id=9056&amp;Anger.Management.S02E47.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся lostfilm.tv (lostfilm.tv)... 5.199.162.25
Подключение к lostfilm.tv (lostfilm.tv)|5.199.162.25|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 302 Moved Temporarily
Адрес: [url]http://www.lostfilm.tv/download.php?id=9056&amp;amp;Anger.Management.S02E47.720p.WEB.rus.LostFilm.TV.torrent[/url] [переход]
--2014-01-29 11:28:46--  [url]http://www.lostfilm.tv/download.php?id=9056&amp;amp;Anger.Management.S02E47.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся [url=http://www.lostfilm.tv]www.lostfilm.tv[/url] ([url=http://www.lostfilm.tv]www.lostfilm.tv[/url])... 5.199.162.25
Повторное использование соединения с lostfilm.tv:80.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: нет данных [text/html]
Сохранение в каталог: ««/home/gu/watch/download.php?id=9056&amp;Anger.Management.S02E47.720p.WEB.rus.LostFilm.TV.torrent»».

    [ <=>                                                                                                                           ] 0           --.-K/s   за 0s

2014-01-29 11:28:46 (0,00 B/s) - «/home/gu/watch/download.php?id=9056&amp;Anger.Management.S02E47.720p.WEB.rus.LostFilm.TV.torrent» saved [0]

--2014-01-29 11:28:46--  [url]http://lostfilm.tv/download.php?id=9053&amp;Klondike.S01E01.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся lostfilm.tv (lostfilm.tv)... 5.199.162.25
Подключение к lostfilm.tv (lostfilm.tv)|5.199.162.25|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 302 Moved Temporarily
Адрес: [url]http://www.lostfilm.tv/download.php?id=9053&amp;amp;Klondike.S01E01.720p.WEB.rus.LostFilm.TV.torrent[/url] [переход]
--2014-01-29 11:28:47--  [url]http://www.lostfilm.tv/download.php?id=9053&amp;amp;Klondike.S01E01.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся [url=http://www.lostfilm.tv]www.lostfilm.tv[/url] ([url=http://www.lostfilm.tv]www.lostfilm.tv[/url])... 5.199.162.25
Повторное использование соединения с lostfilm.tv:80.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: нет данных [text/html]
Сохранение в каталог: ««/home/gu/watch/download.php?id=9053&amp;Klondike.S01E01.720p.WEB.rus.LostFilm.TV.torrent»».

    [ <=>                                                                                                                           ] 0           --.-K/s   за 0s

2014-01-29 11:28:47 (0,00 B/s) - «/home/gu/watch/download.php?id=9053&amp;Klondike.S01E01.720p.WEB.rus.LostFilm.TV.torrent» saved [0]

--2014-01-29 11:28:47--  [url]http://lostfilm.tv/download.php?id=9050&amp;The.Musketeers.S01E01.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся lostfilm.tv (lostfilm.tv)... 5.199.162.25
Подключение к lostfilm.tv (lostfilm.tv)|5.199.162.25|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 302 Moved Temporarily
Адрес: [url]http://www.lostfilm.tv/download.php?id=9050&amp;amp;The.Musketeers.S01E01.720p.WEB.rus.LostFilm.TV.torrent[/url] [переход]
--2014-01-29 11:28:47--  [url]http://www.lostfilm.tv/download.php?id=9050&amp;amp;The.Musketeers.S01E01.720p.WEB.rus.LostFilm.TV.torrent[/url]
Распознаётся [url=http://www.lostfilm.tv]www.lostfilm.tv[/url] ([url=http://www.lostfilm.tv]www.lostfilm.tv[/url])... 5.199.162.25
Повторное использование соединения с lostfilm.tv:80.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: нет данных [text/html]
Сохранение в каталог: ««/home/gu/watch/download.php?id=9050&amp;The.Musketeers.S01E01.720p.WEB.rus.LostFilm.TV.torrent»».

    [ <=>                                                                                                                           ] 0           --.-K/s   за 0s

2014-01-29 11:28:47 (0,00 B/s) - «/home/gu/watch/download.php?id=9050&amp;The.Musketeers.S01E01.720p.WEB.rus.LostFilm.TV.torrent» saved [0]
gu@moshell:~$ cat cati
#!/bin/sh

wget  -qO - [url]http://lostfilm.tv/rssdd.xml[/url] | grep -ioe 'http.*torrent' |  grep -ie 720p.WEB.rus | sed 's/php./php?/g'   > target
for file in `cat target`
do
wget -P /home/gu/watch  "$file" --header 'Cookie: uid=...; pass=....; usess=.....';

done
gu@moshell:~$
"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

3 (29.01.2014 14:33:43 отредактировано lynxvoodoo)

Пробовал и в одинарных и двойных и без, как угодно. Одно и то же.
Ваш пример тоже не пашет, ругается на url

/etc/storage # wget  -qO - [url]http://lostfilm.tv/rssdd.xml[/url] > temp
wget: not an http or ftp url: [url]http://lostfilm.tv/rssdd.xml[/url]

P/S/ Убрал

[url] [/url]

и все заработало.... Ничо не понимаю, я пробовал с двойными кавычками и не получалось ac
А как посмотреть на что именно ругается? Чтоб знать на будущее

4

wget  -qO - http://lostfilm.tv/rssdd.xml | sed '/http.*torrent/!d; /720p\.WEB\.rus/!d; s/php./php?/g; s/.*\(http.*torrent\).*/\1/g'  |\
while read file
do
  wget "$file" -O /mnt/transmission/watch/"${file#*\&amp;}" --header 'Cookie: uid=...; pass=....; usess=.....';
done
Я конечно далек от мысли...(с)

5 (29.01.2014 16:37:42 отредактировано lynxvoodoo)

smaharbA пишет:
wget  -qO - http://lostfilm.tv/rssdd.xml | sed '/http.*torrent/!d; /720p\.WEB\.rus/!d; s/php./php?/g; s/.*\(http.*torrent\).*/\1/g'  |\
while read file
do
  wget "$file" -O /mnt/transmission/watch/"${file#*\&amp;}" --header 'Cookie: uid=...; pass=....; usess=.....';
done

Обернул ваш скрипт в еще один цикл, чтобы скачивать сериалы по нужному мне списку, но почему-то отрабатывает только последняя запись в файле

cat /mnt/transmission/downloads/serial_list.txt > serial_list
for serial in `cat serial_list`
do
wget  -qO - http://lostfilm.tv/rssdd.xml | sed '/http.*torrent/!d; /'$serial'/!d; /720p\.WEB\.rus/!d; s/php./php?/g; s/.*\(http.*torrent\).*/\1/g'  |\
while read file
do
  wget "$file" -O /mnt/transmission/test/"${file#*\&amp;}" --header 'Cookie: uid=...; pass=...; usess=...';
done
echo 111
done

выдает вот это

/etc/storage # ./test
111
111
Connecting to lostfilm.tv (5.199.162.25:80)
Connecting to www.lostfilm.tv (5.199.162.25:80)
Grimm.S03E12.720p.WE 100% |********************************************************************************************************************************************************************************************| 12841   0:00:00 ETA
111

файл serial_list.txt содержит вот такой список:
Grimm
Anger.Management
Grimm

6

#!/bin/sh

url="http://lostfilm.tv/rssdd.xml"

basefolder=~/mnt/transmission
listfolder=${basefolder}/downloads
downfolder=${basefolder}/test

set | sed "/folder=/!d; s/folder=.*/folder/g" | while read x; do x=`eval echo \\$${x}`; [ -d ${x} ] || mkdir -p "${x}"; done

serial_list=${listfolder}/serial_list.txt

for serial in `cat "${serial_list}"`; do
        wget  -qO - "${url}" | sed "/http.*torrent/!d; /${serial}/!d; /720p\.WEB\.rus/!d; s/php./php?/g; s/.*\(http.*torrent\).*/\1/g"  |\
        while read file; do
                echo wget "$file" -O "${dwfolder}/${file#*\&amp;}" --header 'Cookie: uid=...; pass=...; usess=...';
        done
        echo 111
done
Я конечно далек от мысли...(с)

7

smaharbA пишет:
#!/bin/sh

url="http://lostfilm.tv/rssdd.xml"

basefolder=~/mnt/transmission
listfolder=${basefolder}/downloads
downfolder=${basefolder}/test

set | sed "/folder=/!d; s/folder=.*/folder/g" | while read x; do x=`eval echo \\$${x}`; [ -d ${x} ] || mkdir -p "${x}"; done

serial_list=${listfolder}/serial_list.txt

for serial in `cat "${serial_list}"`; do
        wget  -qO - "${url}" | sed "/http.*torrent/!d; /${serial}/!d; /720p\.WEB\.rus/!d; s/php./php?/g; s/.*\(http.*torrent\).*/\1/g"  |\
        while read file; do
                echo wget "$file" -O "${dwfolder}/${file#*\&amp;}" --header 'Cookie: uid=...; pass=...; usess=...';
        done
        echo 111
done

Тоже самое + даже не скачивает что находит ab

/etc/storage # ./test
111
111
wget http://lostfilm.tv/download.php?id=9059&amp;Grimm.S03E12.720p.WEB.rus.LostFilm.TV.torrent -O /mnt/transmission/test/Grimm.S03E12.720p.WEB.rus.LostFilm.TV.torrent --header Cookie: uid=...; pass=...
111

8

список в студию, в нем подикась \r

Я конечно далек от мысли...(с)

9

smaharbA пишет:

список в студию, в нем подикась \r

Каюсь, мой косяк, создавал файл из под винды и перевод строки сделал через Enter.

Пересоздал файл через консоль и vi, все заработало ab

Огромное спасибо за помощь!!! Пойду дальше изучать bash, теперь предстоит разобраться с проверкой уже скачанных торрентов, чтобы не перекачивать заново

10 (30.01.2014 17:06:39 отредактировано lynxvoodoo)

Получилось вот такое в итоге, мало ли кому пригодится:

#!/bin/sh

cat /mnt/transmission/downloads/serial_list > serial_list
for serial in `cat serial_list`
do
wget  -qO - http://lostfilm.tv/rssdd.xml | sed '/http.*torrent/!d; /'$serial'/!d; /720p\.WEB\.rus/!d; s/php./php?/g; s/.*\(http.*torrent\).*/\1/g'  |\
while read file
do
if [ -f /mnt/transmission/watch/"${file#*\&amp;}".added ]; then
  echo "${file#*\&amp;}" is also downloaded >> log;
elif [ 1=1 ]; then
  wget "$file" -O /mnt/transmission/watch/"${file#*\&amp;}" --header 'Cookie: uid=...; pass=...; usess=...' >> log;
fi
done

done

11 (02.02.2014 00:55:54 отредактировано dyazev)

Не ас в линухах... не смог заставить работать flexget. да и такой путь мне больше нравится, в линухах не силен особо... подскажите в чем косяк...
этот скрипт

#!/bin/sh

cat /volume1/public/serial/serial_list.txt: > serial_list
for serial in `cat serial_list`
do
wget  -qO - http://lostfilm.tv/rssdd.xml | sed '/http.*torrent/!d; /'$serial'/!d; /720p\.WEB\.rus/!d; s/php./php?/g; s/.*\(http.*torrent\).*/\1/g'  |\
while read file
do
if [ -f /volume1/public/"${file#*\&amp;}".added ]; then
  echo "${file#*\&amp;}" is also downloaded >> log;
elif [ 1=1 ]; then
  wget "$file" -O /volume1/public/"${file#*\&amp;}" --header 'Cookie: uid=*****; pass=**********; usess=***************' >> log;
fi
done

done

Выдает

DiskStation> sh run3.sh
: not foundne 2:
cat: /volume1/public/serial/serial_list.txt:: No such file or directory
run3.sh: line 5: syntax error: unexpected word (expecting "do")

а этот

#!/bin/sh

url="http://lostfilm.tv/rssdd.xml"

basefolder=/volume1/public
listfolder=${basefolder}/serial
downfolder=${basefolder}

set | sed "/folder=/!d; s/folder=.*/folder/g" | while read x; do x=`eval echo \\$${x}`; [ -d ${x} ] || mkdir -p "${x}"; done

serial_list=${listfolder}/serial_list.txt

for serial in `cat "${serial_list}"`; do
        wget  -qO - "${url}" | sed "/http.*torrent/!d; /${serial}/!d; /720p\.WEB\.rus/!d; s/php./php?/g; s/.*\(http.*torrent\).*/\1/g"  |\
        while read file; 
do
                echo wget "$file" -O "${dwfolder}/${file#*\&amp;}" --header 'Cookie: uid=1*****; pass=*******f; usess=**********';
        done
        echo 111
done

не качает файлы...

wget http://lostfilm.tv/download.php?id=9084&amp;Arrow.S02E12.720p.WEB.rus.LostFilm.TV.torrent -O /Arrow.S02E12.720p.WEB.rus.LostFilm.TV.torrent --header Cookie: uid=; pass=d57e4f; usess=f23
111
111
111
111
111
111
111
111
wget http://lostfilm.tv/download.php?id=9086&amp;Revolution.S02E13.720p.WEB.rus.LostFilm.TV.torrent -O /Revolution.S02E13.720p.WEB.rus.LostFilm.TV.torrent --header Cookie: uid=1; pass=df; usess=
111

список из serial_list.txt

DiskStation> cat /volume1/public/serial/serial_list.txt
Arrow Dracula SuperNatural Helix Sons.of.Anarchy Bitten The.Walking.Dead Black.Sails Revolution The.Following Under.the.Dome The.Musketeers The.Tomorrow.People Continuum Klondike Intelligence Game.of.Thrones Grimm American.Horror.Story The.Vampire.Diaries The.OriginalsDiskStation>
DiskStation>

А вот это чудо работает

wget  -qO - http://lostfilm.tv/rssdd.xml | grep -ioe 'http.*torrent' | grep -ie '\(Modern.Family\|Borgias\)' |  grep -iv 720p | sed 's/php./php?/g'   > target && wget -i target --no-cookies  --header 'Cookie: uid=1342111; pass=passwd; usess=usess'

find . -size -1k | xargs rm

... качает...только все подряд... и 720 и сд..мне нужно только 720... и в папку public....

12 (02.02.2014 12:26:43 отредактировано lynxvoodoo)

dyazev пишет:

Не ас в линухах... не смог заставить работать flexget. да и такой путь мне больше нравится, в линухах не силен особо... подскажите в чем косяк...
этот скрипт
Выдает

DiskStation> sh run3.sh
: not foundne 2:
cat: /volume1/public/serial/serial_list.txt:: No such file or directory
run3.sh: line 5: syntax error: unexpected word (expecting "do")

Тоже не ас, но могу подсказать про 1 скрипт, проблема в файле со списком сериалов. Я создавал файл через консоль, без разрешения txt, потом редактировал через vi (перед и после имен сериалов не должно быть никаких символов, для перехода на новую строчку используйте o)

До этого создавал файл в обычном блокноте винды и получал ошибки, у меня serial_list выглядит так:

/home/root # cd /mnt/transmission/downloads/
/media/Main/transmission/downloads # cat serial_list
Mob.City
Game.of.Thrones
Californication
Continuum
The.Bridge
Peaky.Blinders
Person.of.Interest
The.Walking.Dead

13

ошибся... вобщем этот скрипт заработал, файл и правда кривоват был ) Кстати не обязательно через vim, можно и через notepad++ или мне нравится текстовик консольный jed, у него все функции есть.
Спасибо!

14

dyazev пишет:

ошибся... вобщем этот скрипт заработал, файл и правда кривоват был ) Кстати не обязательно через vim, можно и через notepad++ или мне нравится текстовик консольный jed, у него все функции есть.
Спасибо!

Вообще вам по идее не стоило городить весь этот огород, а чуть модифицировать этот скрипт:

wget  -qO - http://lostfilm.tv/rssdd.xml | grep -ioe 'http.*torrent' | grep -ie '\(Modern.Family\|Borgias\)' |  grep -iv 720p | sed 's/php./php?/g'   > target && wget -i target --no-cookies  --header 'Cookie: uid=1342111; pass=passwd; usess=usess'

find . -size -1k | xargs rm

Просто у меня на роутере нет параметра -i у wget, поэтому пришлось городить такое.

15

lynxvoodoo, согласен. но по сути функцию выполняет, и у меня никак не получается в этом скрипте фильтр на 720p настроить... пытаюсь flexget победить для этих функций, но ощущение что он побеждает...

16 (02.02.2014 14:04:22 отредактировано lynxvoodoo)

dyazev пишет:

lynxvoodoo, согласен. но по сути функцию выполняет, и у меня никак не получается в этом скрипте фильтр на 720p настроить... пытаюсь flexget победить для этих функций, но ощущение что он побеждает...

Пользуйтесь тем что работает ab Надо на виртуалку поставить что-нить из linux и попробовать с -i

P/S/
А еще лучше присмотритесь вот к этому проекту, там много возможностей http://habrahabr.ru/post/210548/, мне его на роутере не развернуть ac

17

Спасибо! Действительно интересная штука! попробую ее на своем synology запустить, впринципе должно заработать.