我需要在 Ubuntu 18.04 上通过 cron 运行一个脚本,myscript.sh
该脚本包含另一个脚本的安装说明等,pluckeye-linux-0.99.40.installer
但我遇到了一个繁琐的错误:
有问题的脚本是普鲁克耶一种家长控制应用程序。这需要以 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 自行安装?
答案1
也许你会这样做:
- 使用 crontab -e
* 20 * * * sh /path/to/myscript.sh
- 使用 /etc/crontab
* 20 * * * root cd /path/to/pluckeye/ && sh ./pluckeye-linux-0.99.40.installer