linux - Torrent下载完成后传输不会运行shell脚本?

标签 linux bash shell ubuntu bittorrent

我希望传输 bittorrent 客户端执行一个脚本,该脚本在种子下载完成时更改已完成文件夹中所有种子的所有者和权限。

我在/etc/transmission-daemon/settings.json 中使用以下相关设置:

"download-dir": "/data/transmission/completed",
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/home/user/script.sh",

在 torrent 完成后,脚本似乎没有执行,我知道除了脚本本身的内容之外,还有其他问题可能会发生。脚本文件的所有者是 debian-transmission 并且我的权限设置为 777,因此除非我在这里遗漏了某些内容,否则传输访问脚本应该不会出现问题。

/home/user/script.sh 文件如下:
#!/bin/bash
echo sudopassword | /usr/bin/sudo -S /bin/chmod -f -R 777 /data/transmission/completed
echo sudopassword | /usr/bin/sudo -S /bin/chown -f -R user /data/transmission/completed

我知道以这种方式使用 sudo 命令是一种糟糕的形式,但我可以自己执行脚本并且它会正常工作。我不确定为什么传输不执行脚本。传输支持一些环境变量,例如 TR_TORRENT_NAME,我想在脚本被触发后使用它们。有什么我没有在文件中设置的东西会阻止脚本正常工作,我将如何使用环境变量?

任何帮助将不胜感激!

最佳答案

Add the user who will execute the script to a group with default sudo access.


Fedora - add user to the wheel group


sudo usermod -aG wheel $(whoami)
Ubuntu - user group: sudo or admin (deprecated)

关于linux - Torrent下载完成后传输不会运行shell脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26304521/

相关文章:

linux - 从 LLVM 位代码创建与位置无关的目标文件

linux - 在gradle中维护属性序列

linux - Bash:返回值不完整

bash - 修改 BASH 脚本以处理我告诉它的任何文件

java - 使用 docker 在具有 Java 7 的服务器上运行 Java 8 应用程序

linux - 在 mac 或 linux 中获取组名的 groupid 的命令是什么?

Bash脚本上传文件到hdfs

bash 变量插值 用连字符或下划线分隔变量

shell - 如何从 MAKEFILE 中的用户定义函数传递和返回值?

python - 根据列的值有效地将一个文件拆分成多个文件