Primeiro, por que você não está apenas usando o recurso watch-dir da transmissão?
A entrada crontab está errada, deve ser * * * * * /root/activate.sh
quando você a adiciona com crontab -e
. /etc/crontab
e /etc/cron.d/*
possuem um campo de nome de usuário extra, mas os crontabs específicos do usuário que você configurou com o comando crontab
não possuem um campo de nome de usuário; as tarefas são executadas como o usuário que executou crontab
.
Além disso, como esse script opera em arquivos no homedir do usuário, eu teria executado o trabalho como esse usuário. Não há nada sobre esse script que requer permissões de root, além de talvez escrever para esse arquivo de log, mas você pode apenas alterar a propriedade desse logfile.
Quanto ao script, eu modificaria um pouco:
#!/bin/bash
for file in ~user/torrents/*.torrent; do
[[ -f "$file" ]] || continue
transmission-remote -a "$file" && mv "$file" "$file.added" || continue
printf '[%s] %s added to queue\n' "$(date)" "$file"
sleep 1
done >> /var/log/torrentwatch.log
Por último, você deve evitar adicionar extensões para scripts e, especialmente, não usar .sh
quando o script for um script bash, não um script sh.