Linux:gsutil在cron中不起作用

时间:2014-11-08 09:39:14

标签: linux crontab gsutil

我试图在Linux中使用cron将文件上传到Google云端存储,但它失败了。 我还在脚本文件中设置了路径和配置:

PATH=/bin/gsutil/
export BOTO_CONFIG="/home/ashu/.boto"
# rest of script

但仍然无效。

6 个答案:

答案 0 :(得分:2)

这样做更安全

PATH="$PATH":/bin/gsutil/

因此,您不能取消对/bin/usr/bin等常用地点的访问权限。您可能无法直接使用它们,但您可能会调用脚本!

更新:@ ComputerDruid正确地指出引号可以防止空格造成麻烦。

答案 1 :(得分:2)

如果您使用的是Google Cloud-Compute Engine提供的默认安装,则gsutil很可能位于/ snap / bin

PATH=$PATH:/snap/bin

答案 2 :(得分:1)

除了修改PATH,如pjz所建议的那样,你是否尝试查看gsutil / cron的实际输出?

推荐失败的原因是什么?如果你需要捕获gsutil的输出, 您可以将标准输出和错误(stdout和stderr)重定向到文件,并将其保存在那里。

E.g。如果您正在使用Bash,则可以通过修改crontab将输出重定向到gsutil_log.txt

*/1 * * * * /mypath/myscript.sh >> $HOME/gsutil_log.txt

这将重定向stdoutstderr,并将gsutil_log.txt中的任何输出附加到$HOME的{​​{1}} {c}每分钟调用一次。

如果输出有用,那么调试时应该会提前一点。

答案 3 :(得分:1)

我在Ubuntu 20.04上遇到了同样的问题,我发现最简单的解决方案是在gsutil安装和系统bin文件夹之间创建一个软链接,如下所示:

sudo ln -s /snap/bin/gsutil /usr/bin/gsutil

答案 4 :(得分:0)

我删除了我的pip安装并使用以下链接进行安装: https://cloud.google.com/storage/docs/gsutil_install#specifications

路径和导出也应该避免使用sudo,因为它可能会导致一些问题。

PATH=$PATH:/root/gsutil/
export BOTO_CONFIG="/root/.boto"
# rest of script

以上代码效果很好。

答案 5 :(得分:0)

您可以尝试在crontab中使用完整路径gsutil命令

/ root / gcloud / gsutil cp ...