添加回声/日期时,s3cmd 无法作为 cron 任务工作

cod*_*iew 2 cron amazon-s3 amazon-web-services cron-task s3cmd

我有一个运行 Ubuntu 14.04 的 Digital Ocean Droplet (VPS)。我已经安装了s3cmd并且能够使用以下命令成功运行同步:

s3cmd sync --recursive --preserve /srv s3://MY-BUCKET-NAME
Run Code Online (Sandbox Code Playgroud)

如果我将相同的命令放入 .sh 以每分钟作为 cron-task 运行,它会起作用:

* * * * * sh /srv/backupToS3.sh >> /srv/backupToS3.log
Run Code Online (Sandbox Code Playgroud)

但是当我向 .sh 添加一些回声和日期时:

echo 'Started:'
date +'%a %b %e %H:%M:%S %Z %Y'
s3cmd sync --recursive --preserve /srv s3://MY-BUCKET-NAME
echo 'Finished:'
date +'%a %b %e %H:%M:%S %Z %Y'
Run Code Online (Sandbox Code Playgroud)

s3cmd 同步不再工作/运行。但是回声和日期会打印到日志文件中:

Started:
Mon Jun  8 17:45:01 PDT 2015
Finished:
Mon Jun  8 17:45:01 PDT 2015
Run Code Online (Sandbox Code Playgroud)

任何帮助或朝着正确方向推动将不胜感激。我最初是按照这篇文章走到这一步的。

ted*_*r42 7

s3cmd 使用位于 ~/.s3cfg 的配置文件。可能很难捡起来。传入--config=/home/username/.s3cfg看看是否有帮助。

在任何情况下, s3cmd 都不是始终如一地维护的。官方命令行客户端 (aws-cli) 在许多方面都要好得多。


编辑:使用它作为你的 .sh 文件,确保它设置了可执行位 ( chmod 755 whatever.sh)。

echo 'Started:'
date +'%a %b %e %H:%M:%S %Z %Y'
/usr/bin/s3cmd sync --recursive --preserve --config=/usr/bin/s3cmd --verbose /srv s3://MY-BUCKET-NAME
echo 'Finished:'
date +'%a %b %e %H:%M:%S %Z %Y'
Run Code Online (Sandbox Code Playgroud)