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

s3cmd sync --recursive --preserve /srv s3://MY-BUCKET-NAME


而且,如果我将相同的命令放入.sh中,以便每分钟作为cron任务运行,则它的工作原理是:

* * * * * sh /srv/backupToS3.sh >> /srv/backupToS3.log


但是,当我向.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'


s3cmd同步不再起作用/无法运行。但是回显和日期会打印到日志文件中:

Started:
Mon Jun  8 17:45:01 PDT 2015
Finished:
Mon Jun  8 17:45:01 PDT 2015


任何帮助或朝正确方向的推动将不胜感激。我最初遵循this article做到了这一点。

最佳答案

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'

关于amazon-web-services - 添加回显/日期时,s3cmd无法用作cron任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30722419/

10-09 00:53