Linux 调用包含输出的.sh时,crontab不输出任何内容
我在Linux 调用包含输出的.sh时,crontab不输出任何内容,linux,shell,output,crontab,Linux,Shell,Output,Crontab,我在/home/me文件夹中有以下test.sh文件 #!/bin/sh _now=$(date +"%Y_%m_%d") _file="/home/me/$_now.txt" speedtest-cli --simple > $_file 其中speedtest cli是一个python脚本,它提供了internet启动和dll速度信息: 从/home/me调用test.sh效果非常好:我得到了所有信息的yyy_mm_dd.txt输出(dll加速等) 但是当我试图从crontab调用
/home/me
文件夹中有以下test.sh
文件
#!/bin/sh
_now=$(date +"%Y_%m_%d")
_file="/home/me/$_now.txt"
speedtest-cli --simple > $_file
其中speedtest cli
是一个python脚本,它提供了internet启动和dll速度信息:
从/home/me
调用test.sh
效果非常好:我得到了所有信息的yyy_mm_dd.txt
输出(dll加速等)
但是当我试图从crontab调用test.sh
时,我得到一个空的yyy\u mm\u dd.txt
文件(里面没有任何内容)
内部crontab-e
20 20 * * * /home/me/test.sh
我做错什么了吗?对于交互式shell,您的
路径可能与cronjob运行的上下文不同,因此您应该在crontab条目中指定speedtest cli
的完整路径 交互式shell的路径可能与cronjob运行的上下文不同,因此您应该在crontab条目中指定speedtest cli
的完整路径 我怀疑有路径问题,所以
选择以下选项之一:
- 在脚本顶部添加
PATH=/usr/local/bin:/bin:/usr/bin
- 在自己行的
crontab-e
顶部添加:PATH=/usr/local/bin:/bin:/usr/bin
- 脚本顶部的
source~/.bashrc
- 为脚本中的每个命令添加完整路径
我怀疑有路径问题,所以
选择以下选项之一:
- 在脚本顶部添加
PATH=/usr/local/bin:/bin:/usr/bin
- 在自己行的
crontab-e
顶部添加:PATH=/usr/local/bin:/bin:/usr/bin
- 脚本顶部的
source~/.bashrc
- 为脚本中的每个命令添加完整路径
是不是
~/.bashrc
?[带点]谢谢Gilles它很好用。我选择了第一个选项:PATH=/usr/local/bin:/bin:/usr/bin不是吗?[带点]谢谢Gilles它很好用。我选择了第一个选项:PATH=/usr/local/bin:/bin:/usr/bin是的,我认为您做错了什么:看起来您没有从cron作业中检查stderr;-)cron作业在不同于从登录shell运行脚本的环境中运行。是的,我认为您做错了:看起来您没有从cron作业中检查stderr;-)cron作业在不同于从登录shell运行脚本的环境中运行。