我是Crontab和Linux的新手。我试图在Crontab中安排以下命令行指令:
speedtest-cli --csv &>> /home/pi/speedtestLog.txt
我试着去做:
*/1 * * * * speedtest-cli --csv >> /home/pi/speedtestLog.txt 2>&1
但是我得到了文件中附加的错误:
/bin/sh: 1: speedtest-cli: not found
我该怎么解决呢?
发布于 2019-08-18 13:02:29
上面的一些评论是正确的,但并没有解释原因。
PATH环境变量是搜索可执行二进制文件的文件系统路径列表,通常如下所示:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/binPATH变量由您使用的SHELL附加。在ubuntu中,/bin/sh链接到默认的shell,这是用于系统引导脚本(即cron)的破折号。破折号类似于痛击,但不完全相同。在终端中,Bash默认使用。
在基于Debian的系统(即Ubuntu)上,路径由pam_env根据/etc/环境的内容初始化:
$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"但是,像Dash/Bash这样的shell还根据调用方式(交互式和登录shell)而来源/etc/profile和~/.profile,其中这些脚本可以追加PATH环境变量。
尽管如此,速度测试-cli必须位于路径上的文件夹中,否则必须使用完整路径指定它。如果你想要选择1,你可以尝试
*/1 * * * * . /home/pi/.profile ; speedtest-cli --csv >> /home/pi/speedtestLog.txt 2>&1注:感谢steeldriver指出“源.profile”是一种低级主义,而posix标准是". .profile“。
https://askubuntu.com/questions/1166582
复制相似问题