I’ve set up a home server and wanting a simple straight forward way to download torrents remotely I relied on an old hack I’ve heard about but never attempted. You can configure transmission the torrents client to pick up torrents files from a certain directory, sharing this directory on google drive means that you can drop torrent files for transmission to download for you at home.
The problem is you can’t really monitor the progress of the torrents and some of these torrent files may not even start. So I decided to write a small shell script that monitors two events and updates me through push bullet, the first event being the torrent download start (creation of a *.part file) the second event is the completion of the download (new file in the downloads directory).
The script works as follows:
#!/bin/bash partsLocation=<DOWNLOADS LOCATION HERE> completeLocation=<COMPLETE LOCATION HERE> logLocation=./TorrentsMonitor.log pushBulletAPI=<PBAPI KEY HERE> for i in $(find $partsLocation -name "*.part" -maxdepth 1|sed -e "s/ /_/g"); do echo "Handling File" echo $i; echo "----------------------" #apply check here if file exists countOfParts=$(cat parts.log|grep $i|wc -l) echo $countOfParts if [ $countOfParts -gt 0 ] then echo "already listed" else echo "new file, adding to parts.log" echo $i >> parts.log curl -u $pushBulletAPI: https://api.pushbullet.com/v2/pushes -d type=note -d title="Tor Started" -d body="Download started for file $i" fi done #------------------------- #scan for complete files #----------------------------- for i in $(find $completeLocation ! -name '*.part' ! -name '*.log' ! -name "*.sh*" ! -name "." -maxdepth 1|sed -e "s/ /_/g"); do echo "Handling File" echo $i; echo "----------------------" #apply check here if file exists countOfComplete=$(cat complete.log|grep $i|wc -l) echo $countOfComplete if [ $countOfComplete -gt 0 ] then echo "already listed" else echo "new file, adding to complete.log" echo $i >> complete.log curl -u $pushBulletAPI: https://api.pushbullet.com/v2/pushes -d type=note -d title="Tor Completed" -d body="Download Completed for file $i" fi done
