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 键
我编写了一个 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 键