我不记得我发现它的位置,但我有一个脚本,一旦种子完成播种就会将种子从传播中移除。
我想添加一个也删除腐败种子的部分。腐败的洪流将有以下几行:
错误:找不到数据!确保您的驱动器已连接或使用"设置位置"。要重新下载,请删除torrent并重新添加。
这是我的剧本:
#!/bin/sh
#transmission-remote --auth=user:pass --torrent 1 --info
#transmission-remote --auth=user:pass --list
TRUSER='user'
TRPASS='pass'
TORRENTLIST=`transmission-remote --auth=$TRUSER:$TRPASS --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=' ' --fields=1`
for TORRENTID in $TORRENTLIST
do
echo "* * * * * Operations on torrent ID $TORRENTID starting. * * * * *"
DL_COMPLETED=`transmission-remote --auth=$TRUSER:$TRPASS --torrent $TORRENTID --info | grep "State: Finished"`
if [ "$DL_COMPLETED" != "" ]; then
echo "Torrent #$TORRENTID is completed."
echo "Removing torrent from list."
transmission-remote --auth=$TRUSER:$TRPASS --torrent $TORRENTID --remove-and-delete
else
echo "Torrent #$TORRENTID is not completed. Ignoring."
fi
echo "* * * * * Operations on torrent ID $TORRENTID completed. * * * * *"
done
for TORRENTID in $TORRENTLIST
do
echo "* * * * * Operations on torrent ID $TORRENTID starting. * * * * *"
DL_STOPPED='transmission-remote --auth=$TRUSER:$TRPASS --torrent $TORRENTID --info | grep -o "Error: No data found"'
if [ "$DL_STOPPED" = !"" ]; then
echo "Torrent #$TORRENTID is corrupted."
echo "Removing torrent from list."
transmission-remote --auth=$TRUSER:$TRPASS --torrent $TORRENTID --remove-and-delete
else
echo "Torrent #$TORRENTID is not corrupted. Ignoring."
fi
echo "* * * * * Operations on torrent ID $TORRENTID completed. * * * * *"
done
我认为添加' -o' grep之后会解决我的问题,但是这会删除所有没有被破坏的种子。
如何让此脚本删除已完成的种子和腐败种子?
这是我第一次发帖,所以我希望我做得对。
埃迪
答案 0 :(得分:0)
问题是您使用单引号而不是后引号。
更改行:
DL_STOPPED='transmission-remote --auth=$TRUSER:$TRPASS --torrent $TORRENTID --info | grep -o "Error: No data found"'
为:
DL_STOPPED=`transmission-remote --auth=$TRUSER:$TRPASS --torrent $TORRENTID --info | grep -o "Error: No data found"`
单引号表示bash中的字符串,而反引号则表示子shell中的字符串。无论如何,我认为最好使用$( ...)
,因为这种表示法允许嵌套。
有关详细说明,请参阅https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html
此外,您应该更改if
:
if [ "$DL_STOPPED" = !"" ]; then
为:
if [ "$DL_STOPPED" != "" ]; then