wiki:Scripts/Watchdog

Version 10 (modified by wereHamster, 13 years ago) (diff)

Fix typo (reported by Azquelt in IRC)

Watch Directory Script

(for other scripts, see the Scripts page)

Notes

To run this script at an interval, add this to your crontab.

Script "watchdog.sh"

#!/bin/bash 

# Watch dir, may contain spaces:
watchdir="/torrentwatch/"

# move file to a subdirectory? if Commented out, it'll removed remove
# the torrent file.
# Note: Don't put a '/' before the path!
movesubdir="added/"


# Authentication "username:password":
#tr_auth="admin:admin"

# Transmission host "ip:port":
tr_host="127.0.0.1:9091"

# Verbose?
verbose=1

#############################################
time=$(date "+%Y-%m-%d (%H:%M:%S)")
if [ -n "$tr_auth" ]; then 
    tr_auth="--auth=$tr_auth"
fi

for file in "$watchdir"*.torrent
do
    if [ -f "$file" ]; then
        if [ -n "$verbose" ]; then echo "$time: $file added to queue."; fi

        /usr/local/bin/transmission-remote "$tr_host" "$tr_auth" -a "$file" > /dev/null
        # give the remote some time to process
        sleep 5
        
        if [ $movesubdir ]; then
            if [ -d "$watchdir$movesubdir" ]; then
                mv "$file" "$watchdir$movesubdir"
            else
                mkdir "$watchdir$movesubdir"
                mv "$file" "$watchdir$movesubdir"
            fi
        else
            rm "$file"
        fi
    else
        if [ -n "$verbose" ]; then echo "$time: No torrent in $watchdir."; fi
    fi
done

exit 0