我需要在 Ubuntu 18.04 上通过 cron 运行一个脚本,myscript.sh
其中包含另一个脚本的安装说明等,pluckeye-linux-0.99.40.installer
我遇到了一个乏味的错误:
有问题的脚本是Pluckeye一种家长控制应用程序的安装程序。这需要以 root 身份运行。里面myscript.sh
我放了
cd "/path/to/pluckeye/"
./pluckeye-linux-0.99.40.installer
当我跑到
sudo crontab -e
那里* 20 * * * "/path/to/myscript.sh"
然后 Pluckeye 的安装程序返回一个神秘的错误(我将 cron 执行的输出重定向到一个文件,以便我可以看到出了什么问题):
0b8e:24: ca151e1e WARNING 32512 0b8e:33: ca151e1e WARNING 0x30b8e019 0b8e:42: ca151e1e WARNING 0x30b8e019 0b8e:78: ca151e1e WARNING 0x30b8e019 0c2c:14: ca151e1e WARNING 0x30b8e019 0b4c:20: ca151e1e WARNING 0x30b8e019 0c70:48: ca151e1e WARNING 0x30b8e019 FAILED TO INSTALL: 6400
但是当我在我的shell中正常运行安装程序时
sudo
(否则它会立即返回并出错I need to be invoked by root
FAILED TO INSTALL: 11520
) 它可以正常工作。
我认为这是因为 cron 使用自己的最小环境。我已经尝试了我在互联网上找到的各种东西,比如使用而不是上面的
* 20 * * * . $HOME/.profile; "/path/to/myscript.sh"
希望让安装程序现在可以工作,但这并没有改变。我不想sudo
放在脚本里面,意思是
cd "/path/to/pluckeye/"
sudo ./pluckeye-linux-0.99.40.installer
正如我所读到的那样,这会带来安全风险。
我需要做什么才能让 Pluckeye 通过 cron 自行安装?
也许你会这样做: