Bash cron 作业不像在命令行上那样执行

Bash cron job doesn't execute like it does on command line

我编写了一个 bash 脚本,该脚本执行 python 脚本以将文件写入目录,然后将该文件发送到 Amazon S3。当我从命令行执行脚本时,它执行得很好,但是当我使用 cron 运行 它时,文件写入目录,但永远不会发送到 S3。我一定是 cron 做错了。

这是 bash 脚本:

#!/bin/bash

#python script that exports file to home directory
python some_script.py

#export file created by python to S3
s3cmd put /home/bitnami/myfile.csv s3://location/to/put/file/myfile.csv

正如我之前所说,使用 ./bash_script.sh 手动执行效果很好。当我设置 cron 作业时,文件写入目录,但从未发送到 S3。

我的 cron 作业是:

18 * * * * /home/bitnami/bash_script.sh

我是否错误地使用了 cron?请帮忙。

Cron 看起来不错,但是找不到您的 .py 文件路径。

您必须添加路径或主页,例如:

location=/home/bitnami/
python $location/some_script.py

还需要正确定位 s3cmd:

/bin/s3cmd

备选方案可能还需要先加载您的用户环境,然后再执行脚本以找到 s3cmdusername/password/ssh 键