GUI Way
What I did before was to log into a machine, connect to a shared drive and then open Transmission which was configured to look at the shared drive for any new torrent files. I even wrote a program that grab checked and downloaded new torrent files every 24 hours. Setting this up was extremely simple. As part of my login items on OSX, I had it connected to my shared drive. Then I would start Transmission and have it point to the shared drive to automatically download the torrents. I used watch to execute my torrent downloads:
watch -n 72000 <program to download torrents>
I didn't use cron or anything because this was originally on a OSX laptop.
When I switched to a Linux machine that is kept on, I did the exact same thing. The problem with this is that you're expected to be logged in to the system and keeping the programs running. If someone else need to use the computer then everything stops since you'd have to log out.
Install the transmission-daemon
I started and stopped the daemon because you need to configure it through the /var/lib/transmission/.config/transmission-daemon/settings.json and this gets created when you first start (for other locations of Transmission files click here). This will also install the transmission user
Next you need to mount the shared drive in order for transmission to access and ONLY transmission:
The gid and uid belongs to the user you want to be able to do read-and-writes to the shared drive otherwise it'll only be root that can do it. For Fedora, the user is "transmission"
If it works and you can read-and-write, you can move this into /etc/fstab:
Systemd will look at /etc/fstab and automatically create an unit that can be added to the service file to tell it to wait. Running the systemctl command will show you an unit that can be used (it'll be something with a .mount suffix).
Add that unit to the After line:
Finally, set up a cron job to regularly check for new torrents:
Terminal Way
This similar to the GUI way described above except you do it in a terminal running in a tmux session so that you can disconnect without loosing your transmission job. To connect to the shared smb drive without the GUI by using transmission-cli tool.tmux dbus-launch bash gvfs-mount smb://<user>@<host>/<path-to-shared-drive> sudo yum install transmission-cli transmission-cliYou'd put in your user name and password as it prompts you when you mount the shared drive. You'll need to configure transmission.
Headless Way
This doesn't require any GUI or terminal and can automatically starts at each boot.Install the transmission-daemon
sudo yum install transmission-daemon sudo systemctl start transmission-daemon.service sudo systemctl stop transmission-daemon.serviceThe service file is in /usr/lib/systemd/system/transmission-daemon.service.
I started and stopped the daemon because you need to configure it through the /var/lib/transmission/.config/transmission-daemon/settings.json and this gets created when you first start (for other locations of Transmission files click here). This will also install the transmission user
Next you need to mount the shared drive in order for transmission to access and ONLY transmission:
sudo mount -t cifs -o -credential=<path-to-credential>,gid=`id -g transmission`,uid=`id -u transmission` <mount point>The credential value points to a file that contains your username, password and domain for logging into the shared drive. Make sure wherever you store it that it's not readable by others.
The gid and uid belongs to the user you want to be able to do read-and-writes to the shared drive otherwise it'll only be root that can do it. For Fedora, the user is "transmission"
If it works and you can read-and-write, you can move this into /etc/fstab:
//<host>/<path-to-file> <mount-point> cifs credentials=<path-to-cred>,uid={user id},gid={group id}and then reload fstab:
sudo mount -aOnce you configure the /var/lib/transmission/.config/transmission-daemon/settings.json to your liking then fire up:
sudo systemctl start transmission-daemon.service
sudo systemctl enable transmission-daemon.serviceThis starts up the service now and also at each machine reboot. The one issue is that transmission-daemon might start before the drive is mounted and then it won't look for the changes. It needs to be told to wait.
Systemd will look at /etc/fstab and automatically create an unit that can be added to the service file to tell it to wait. Running the systemctl command will show you an unit that can be used (it'll be something with a .mount suffix).
Add that unit to the After line:
After=network.target <mount unit>
Finally, set up a cron job to regularly check for new torrents:
crontab -u <transmission user> -eWith the value being something like:
0 23 * * * <path-to-program-to-run> >> /var/lib/transmission/download.log 2>&1
which says to execute the program every night at 11pm and store the out put in /var/lib/transmission/download.log.
Since the transmission users is disabled for an interactive shell, to execute commands as the transmission user, use:
Since the transmission users is disabled for an interactive shell, to execute commands as the transmission user, use:
sudo -u <transmission user> <command>