我目前使用s3cmd将我们服务器的备份同步到亚马逊s3。我使用类似于以下内容的cron执行此操作:
MAILTO=my@email.address
01 03 * * * s3cmd sync /root/backup/backups/ s3://somebucket/
这只是一个示例,要同步的文件已经在备份目录中。目前,当我使用它时,我经常会收到关于上传失败的警告(连接由peer重置)然后重试。在重复1或2次后,上传通常会到达。
我想知道的是,我可以将s3cmd的详细程度更改为仅在实际出错时记录输出,而不是警告,以便在我需要查看某些内容时才会收到电子邮件吗?
看来您可以在.s3cmd首选项文件中设置它,但我想确保。
由于
答案 0 :(得分:5)
如果您使用的是s3cmd
的较新版本,请尝试使用--quiet
(或-q
)选项:
MAILTO=my@email.address
01 03 * * * s3cmd sync --quiet /root/backup/backups/ s3://somebucket/
如果没有,只需将STDOUT
重定向到/dev/null
,就像这样:
MAILTO=my@email.address
01 03 * * * s3cmd sync /root/backup/backups/ s3://somebucket/ >/dev/null
错误会发送到STDERR
,因此仍会通过电子邮件发送给我们。
关于S3CMD和STDERR的更新:
正如Valguss指出的那样,似乎s3cmd始终将调试,信息,警告和错误消息记录到STDERR
,因此上述方法将无效。
但是,详细级别可以从.s3cfg
文件控制(在本例中位于与cron作业关联的用户的主目录中):
[default]
verbosity = ERROR
此时无法通过命令行参数配置详细级别ERROR
。