LinuxForum.Fans
Тема

Ошибка EOF in backquote substitution

Автор: lynxvoodoo 17 сообщений 13613 просмотров
#363005

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

text

#!/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

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

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

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

#363015

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

text
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]

text

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:~$

#363042

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

text
/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/ Убрал

text
[url] [/url]

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

#363046
text
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
#363052
smaharbA написал:
text
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

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

text
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

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

text

/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

#363062
text
#!/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

#363075
smaharbA написал:
text
#!/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

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

text

/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
#363142

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

#363192
smaharbA написал:
список в студию, в нем подикась \r

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

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

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

#363254

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

text

#!/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

#363778

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

text
#!/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

Выдает

text
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")

а этот

text
#!/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

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

text
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

text
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>

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

text
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....

#363821
dyazev написал:
Не ас в линухах... не смог заставить работать flexget. да и такой путь мне больше нравится, в линухах не силен особо... подскажите в чем косяк...
этот скрипт
Выдает
text
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 выглядит так:

text

/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
#363826

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

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

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

text
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, поэтому пришлось городить такое.

#363831

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

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

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

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

#364035

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

Войдите или зарегистрируйтесь, чтобы ответить.