我的Docker容器中每小时都有cron运行bash脚本:
#!/bin/bash
/usr/bin/generate_signing_key -k $AWS_SECRET_ACCESS_KEY -r $AWS_DEFAULT_REGION > /usr/local/nginx/s3_signature_key.txt
{ read -r val1
read -r val2
sed -i 's! aws_signing_key .*; *$! aws_signing_key '$val1';!; s! aws_key_scope .*; *$! aws_key_scope '$val2';!;' /etc/nginx/nginx.conf
} < /usr/local/nginx/s3_signature_key.txt
if [ -z "$(pgrep nginx)" ]
then
nginx -c /etc/nginx/nginx.conf
else
nginx -s reload
fi
因此它正在运行Python脚本generate_signing_key
,并将结果保存到s3_signature_key.txt
文件中。然后sed
取一些值并更新nginx
的配置。
如果手动运行脚本,并且我以cron方式运行,则脚本正在运行:
cd / && run-parts --report /etc/cron.hourly
不幸的是,如果cron本身运行它,那么它将对输出s3_signature_key.txt
文件进行清零并清除nginx配置中的值。
有什么想法吗?