Linux bash脚本没有';不能通过crontab工作

Linux bash脚本没有';不能通过crontab工作,linux,bash,shell,Linux,Bash,Shell,我正在运行一个bash脚本,该脚本将文件传输到我的AWS存储桶。如果我通过终端运行bash脚本,它可以正常工作(通过./myBash.sh)。 但是我把它放在我的crontab中,但是它不起作用。这是我的bash脚本 #!/bin/bash s3cmd put/home/anonymous/commLogs.txt s3://myBucket/ 回波传输完成 echo现在列出s3存储桶中的文件 s3cmd ls s3://myBucket/ 回声检查 这是我的crontab- SHELL=/bi

我正在运行一个bash脚本,该脚本将文件传输到我的AWS存储桶。如果我通过终端运行bash脚本,它可以正常工作(通过./myBash.sh)。 但是我把它放在我的crontab中,但是它不起作用。这是我的bash脚本

#!/bin/bash s3cmd put/home/anonymous/commLogs.txt s3://myBucket/

回波传输完成

echo现在列出s3存储桶中的文件

s3cmd ls s3://myBucket/

回声检查

这是我的crontab-

SHELL=/bin/sh

路径=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

46 13***/bin/bash myBash.sh

这是我已经尝试过的事情的清单-

1) 尝试使用节点应用程序运行crontab,以测试crontab是否正常工作(答案是yes)

2) 尝试在没有SHELL和路径的情况下运行crontab

3) 尝试使用sudo(46 13***sudo myBash.sh)从cron运行bash脚本

4) 尝试在没有/bin/bash的情况下运行bash

5) 在网上搜索了许多网站,却没有找到令人满意的答案


有人能帮我解决这个问题吗?(我正在运行Ubuntu 14.04)

对于任何来这篇文章的人。 我也遇到了同样的问题,原因是crontab是在root用户下运行的,而s3cmd是在ubuntu用户下配置的。 所以需要将.s3cfg复制到root

cp -i /home/ubuntu/.s3cfg /root/.s3cfg

对于任何来到这个岗位的人。 我也遇到了同样的问题,原因是crontab是在root用户下运行的,而s3cmd是在ubuntu用户下配置的。 所以需要将.s3cfg复制到root

cp -i /home/ubuntu/.s3cfg /root/.s3cfg

在很长一段时间出现同样的错误后,我只是这样做了:

SHELL=/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin


* * * * * /bin/bash /home/joaovitordeon/Documentos/test.sh

在很长一段时间出现同样的错误后,我只是这样做了:

SHELL=/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin


* * * * * /bin/bash /home/joaovitordeon/Documentos/test.sh

您是否将脚本的标准输出从cron输出到一个文件该文件的内容是什么?(
46 13***/bin/bash myBash.sh>/home/anonymous/cron_out.txt
)此脚本只是为了测试crontab是否正在执行bash..所以txt文件的内容只是“abcdefgh”,所以您没有。您是否像上面那样在cron中排除了脚本的路径?bash脚本是/bin文件夹如果它在路径中,请使用
chmod
赋予它执行权限,并从
crontab
中删除
/bin/bash
部分,您是否将脚本的标准输出从cron输出到文件中该文件的内容是什么?(
46 13***/bin/bash myBash.sh>/home/anonymous/cron_out.txt
)此脚本只是为了测试crontab是否正在执行bash..所以txt文件的内容只是“abcdefgh”,所以您没有。您是否像上面那样在cron中排除了脚本的路径?bash脚本是/bin文件夹如果它在路径中,请使用
chmod
赋予它执行权限,并从
crontab
中删除
/bin/bash
部分,ie.
46 13***myBash.sh
。应接受此答案,因为问题在于脚本路径不完整。应接受此答案,因为问题在于脚本路径不完整。