bash & s3cmd 无法正常工作
Posted
技术标签:
【中文标题】bash & s3cmd 无法正常工作【英文标题】:bash & s3cmd not working properly 【发布时间】:2015-04-05 08:03:57 【问题描述】:您好,我在 ubuntu 12.04 LTS 上有一个包含 s3cmd 命令的 shell 脚本。 我为这个shell脚本配置了cron,它适用于本地环境,但不要将文件推送到s3。但是当我手动运行shell脚本时,它将文件推送到s3而没有任何错误。我检查了日志并没有发现任何问题。这是我的 shell 脚本。
#!/bin/bash
User="abc"
datab="abc_xyz"
pass="abc@123"
Host="abc1db.instance.com"
FILE="abc_rds`date +%d_%b_%Y`.tar.gz"
S3_BKP_PATH="s3://abc/db/"
cd /abc/xyz/scripts/
mysqldump -u $User $datab -h $Host -p$pass | gzip -c > $FILE | tee -a /abc/xyz/logs/app-bkp.log
s3cmd --recursive put /abc/xyz/scripts/$FILE $S3_BKP_PATH | tee -a /abc/xyz/logs/app-bkp.log
mv /abc/xyz/scripts/$FILE /abc/xyz/backup2015/Database/
#END
这真的很奇怪。任何建议都会有很大帮助。
【问题讨论】:
现在遇到同样的问题,你解决了吗? 【参考方案1】:检查运行在 crontab 中配置的用户在环境中是否具有正确的权限和密钥。
我猜密钥是在 env 文件中配置的,因为它们不在脚本中。
【讨论】:
我已将此 cron 添加为 root 用户,并且如果我以 root 用户身份运行相同的 shell 脚本,它工作正常。它将数据传输到 s3 存储桶。 cronjob 正在运行吗?你能分享脚本的 crontab 条目吗? 下面是这个 shell 脚本的 crontab 条目。 45 23 * * * /bin/bash /abc/xyz/scripts/rds_bkp.sh > /dev/null 2>&1 只是一个想法:你可以删除“/bin/bash”并让脚本可执行吗? 按照建议进行更改。但是为了您的信息,脚本在 crontab 中成功执行,它只是不将备份发送到 s3 存储桶,而如果手动运行脚本,它会将备份发送到 s3 存储桶。以上是关于bash & s3cmd 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
BASH 和/或 .BASHRC 在 SU 或 SSH 登录后无法正常工作,除非运行“bash”命令
将两个 bash shell 文件合并为一个后,它无法正常工作