Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Shell脚本可以从命令行工作,但不能从cron工作_Bash_Cron - Fatal编程技术网

Bash Shell脚本可以从命令行工作,但不能从cron工作

Bash Shell脚本可以从命令行工作,但不能从cron工作,bash,cron,Bash,Cron,我正在使用,它可以从命令行运行,但不能从cron运行。我甚至试着用env-I运行这个脚本,但效果很差 #!/bin/bash filename=$(date '+%Y-%m-%d').gz docker exec -t elastic_db.1.$(docker service ps -f 'name=elastic_db.1' elastic_db -q --no-trunc | head -n1) mysqldump example |gzip -9 > /container/$fil

我正在使用,它可以从命令行运行,但不能从cron运行。我甚至试着用
env-I
运行这个脚本,但效果很差

#!/bin/bash
filename=$(date '+%Y-%m-%d').gz
docker exec -t elastic_db.1.$(docker service ps -f 'name=elastic_db.1' elastic_db -q --no-trunc | head -n1) mysqldump example |gzip -9 > /container/$filename
docker exec -t elastic_drupal.1.$(docker service ps -f 'name=elastic_drupal.1' elastic_drupal -q --no-trunc |head -n1) rclone --config /etc/rclone.conf move /app/$filename example:example/dump/

当从cron运行时,这会压缩一个0字节的文件,但在其他情况下效果很好。我做错了什么?

Gordon Davidson的评论是正确的:将
docker
更改为
/usr/bin/docker
有效。

cron作业运行的环境非常小,包括
路径
,该路径可能不包括
docker
所在的目录。我不认为
env-I
完全模拟了这一点。尝试在crontab或脚本中显式设置
PATH
。此外,每当cron作业出错时,请尝试使用类似于
2>/tmp/cron job.log的内容捕获错误输出。