添加 echos/dates 时,s3cmd 不作为 cron 任务工作

s3cmd not working as cron-task when echos/dates are added

我有一个 Digital Ocean Droplet (VPS) 运行ning Ubuntu 14.04。我已经安装 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 同步不再 work/run。但是回声和日期打印到日志文件:

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'

我遇到了同样的问题,我试图弄清楚为什么它不是 运行。我的解决方案是将以下行添加到我的脚本的顶部:

export HOME=/home/$USERNAME cd /home/$USERNAME

您还应该使用以下命令调用 s3cmd:

/usr/bin/s3cmd

或将以下行放在脚本的顶部:

PATH=$PATH:/usr/bin