Por algum motivo, a funcionalidade da transmissão watch-dir
não funciona para mim (tentei algumas "soluções" que encontrei, mas nada funcionou). Então eu criei um script para fornecer isso (observe que eu coloquei esse script no meu crontab
para ser executado de hora em hora, então eu precisava adicionar caminhos completos para tudo):
#!/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
O que eu consegui com este script é que ele funciona se houver apenas 1 arquivo torrent. Mas se houver 2 ou mais, apenas 1 deles será adicionado, todos serão removidos e a linha echo adding $torrent
mostrará todos os torrents.
O que estou fazendo errado?
Eu suspeito que a linha
não está expandindo para uma lista de arquivos porque você o colocou entre aspas . Ele se expande mais tarde cada vez que
$torrent
é usado, mas isso passa todos os seus arquivos para transmissão de uma só vez.Reescreva esta linha como
Também recomendo usar
nullglob
. Veja para erros de glob de loop .Além disso,
inotify-wait
pode ser usado para acionar um script de shell quando um arquivo é criado em um diretório.