出于某种原因,传输的watch-dir
功能对我不起作用(我尝试了一些我发现的“解决方案”,但没有任何效果)。所以我为自己制作了一个脚本来提供它(请注意,我把这个脚本crontab
每小时运行一次,所以我需要为所有内容添加完整路径):
#!/bin/bash
prefix='/home/user'
folder=$prefix'/path/to/watched/dir'
cd $folder
count=$(ls -1 *.torrent 2>/dev/null | wc -l)
if [ $count != 0 ];then
echo $count torrents files found
for torrent in '*.torrent'; do
echo adding $torrent
transmission-remote -n 'transmission:transmission' -a $folder/"$torrent"
rm $folder/$torrent
done
else
echo no torrents found
fi
我用这个脚本得到的是,如果只有 1 个 torrent 文件,它就可以工作。但如果有 2 个或更多,则只添加其中的 1 个,所有的都被删除并且该行echo adding $torrent
显示所有种子。
我究竟做错了什么?
我怀疑这条线
不会扩展到文件列表,因为您已将其括在引号中。每次
$torrent
使用它都会稍后扩展,但这会将您的所有文件一次传递给传输。将此行重写为
我还建议使用
nullglob
. 参见for loop glob mishaps。此外,
inotify-wait
可用于在目录中创建文件时触发 shell 脚本。