Я разобрался с этим. Я опубликую свое решение на случай, если другие столкнутся с той же проблемой. Но, по сути, брандмауэр на моей гостевой машине не имеет соответствующего порта, который в данном случае является портом 80.
Я нашел решение здесь.
Я думаю, что есть только два способа сделать это:
Используйте --list
до и после и посмотрите, что нового. Выполнимо в сценарии, но звучит болезненно. И конечно склонность к гонкам.
Используйте -t TORRENT -i
и посмотрите на поле Id:
. На первый взгляд это выглядит круглым, но оказывается, что TORRENT не обязательно должен быть идентификатором. Это может быть хэш.
Итак, с методом 2:
hash="$( transmission-show FILE.TORRENT | perl -n -E 'say $1 if /^\s*Hash: (.+)$/' )"
id="$(transmission-remote -t "$hash" -i | perl -n -E 'say $1 if /^\s*Id: ([0-9]+)$/' )"
Конечно, вы можете объединить их все в одну строку. И вам нужно будет добавить параметры сервера/аутентификации в эту строку tramission-remote
. (Лично у меня есть скрипт t-r
, который делает это, а также добавляет выделение четных и нечетных строк в вывод -l
). Это выглядит так:
#!/bin/bash
if ! [ -r ~/.transmission-netrc ]; then
echo Expected to find a ~/.transmission-netrc file with the username
echo and password.
exit 1
fi
if [ "xterm" == "$TERM" ]; then
export TERM=xterm-256color
fi
transmission-remote «HOSTNAME» -N ~/.transmission-netrc "$@" | (
if [ "-l" == "$1" ]; then
sed -e "1~2 s|^|`tput setab 149``tput el`|" -e "2~2 s|^|`tput setab 221``tput el`|"
tput setab 7
tput el
else
cat
fi
)
Обратите внимание на «ИМЯ ХОСТА», которое вам нужно заполнить.