어떤 이유로 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개만 있으면 작동한다는 것입니다. 그러나 2개 이상이면 그 중 1개만 추가되고 모두 제거되며 행에 echo adding $torrent
모든 시드가 표시됩니다.
내가 뭘 잘못했나요?
답변1
이 줄이 의심스럽다
for torrent in '*.torrent'; do
파일 목록으로 확장되지 않았습니다.따옴표로 묶으세요.. 사용할 때 마다 확장되지만 $torrent
모든 파일이 즉시 전송됩니다.
이 줄을 다음과 같이 다시 작성하세요.
for torrent in *.torrent; do
을(를) 사용하는 것도 좋습니다 nullglob
.for 루프 글로브 사고.
또한 inotify-wait
디렉터리에 파일이 생성될 때 쉘 스크립트를 트리거하는 데 사용할 수 있습니다.