【发布时间】:2019-01-29 22:55:28
【问题描述】:
我有 python 脚本为 S3 生成 AWS 签名密钥。它生成两个值:
GZkXNl6Leat71ckcwfxGuiHxt9fnkj47F1SbVjRu/t0=
20190129/eu-west-2/s3/aws4_request
两者的有效期均为 7 天。我想要的是在 Docker 容器中使用 cron 每五天运行一次该脚本,获取输出并在 Nginx 配置中放置/替换值 配置:
server {
listen 80;
aws_access_key 'AKIDEXAMPLE';
aws_signing_key FIRST_VALUE;
aws_key_scope SECOND_VALUE;
aws_s3_bucket s3_bucket_name;
location / {
aws_sign;
proxy_pass http://s3_bucket_name.s3.amazonaws.com;
}
然后在容器中重启nginx
【问题讨论】:
-
有什么问题?你知道如何调用python吗?你知道如何让它写输出吗?您知道如何捕获该输出吗?你知道如何修改 nginx 配置吗?你知道如何编辑脚本吗?结合这些问题的答案(可能还有更多),你就完成了。
-
有问题。 Python 脚本在输出中给出了这两行。我需要将它们放入上面的 Nginx 配置中。
-
啊,所以您只是希望有人为您编写脚本,而您实际上并没有具体的问题。我想说问题中唯一困难的部分是说服 cron 每 5 天运行一次。它在月底变得棘手,如果您允许自己使用
0/5形式的日期说明符,会容易得多。但是避免 cron 可能更容易,只需执行while sleep 432000; do cmd; done其中 cmd 是执行您想要的操作的命令。 -
是的,William 我要求为我写它,你对 cron 的看法是对的,但它也应该适用于 [ $(( $((
date +%-j- 1 )) % 5 )) == 0]。睡眠是我会尝试的另一种选择。
标签: bash amazon-web-services nginx